Example: Creating a spatial view in Informix using the sdetable command
sdetable コマンドの -c オプションで指定する列のリストに空間列を含めることにより、空間ビューを作成できます。sdetable コマンドを使用して空間ビューを作成する場合、ビューはテーブルとして ArcSDE に登録されます。ビューをレイヤとして登録するには、sdelayer コマンドを使用します。
この例では、sdetable コマンドを使用してフィーチャクラスと非空間テーブルの列を組み込んだ空間ビューを作成し、このビューの権限をユーザに与えます。その後、ビューをレイヤとして ArcSDE に登録します。
Create a spatial view
次の例では、employees テーブルが regions フィーチャクラスと結合されています。2 つのテーブルは、どちらにも存在する emp_id で結合されます。
sdetable -o create_view -T emp_region_view -t employees,regions -c 'employees.name,employees.emp_id,regions.reg_id,regions.rname,regions.region' -a 'employee,eid,rid,region,area' -w "employees.emp_id = regions.emp_id" -u gdb -p gdb.bdg -i sde:informix -s myidsserver -D testdb
この例のビューには 2 つの異なるテーブルの列が含まれ、テーブル名によって列名が非常に長くなるため、-a オプションを使用して列にエイリアスを割り当てています。ただし、エイリアスが必要となるのは、ビューに含まれる列の名前が曖昧になる場合だけです。たとえば、2 つのテーブル間でビューを作成したときに、両方のテーブルの name 列が含まれる場合は、列のエイリアスを設定して 2 つの name 列を区別します。-a オプションを使用して列名のエイリアスを設定する場合は、指定する列とその順序を -c と -a のリストで同じにする必要があります。
reg_id は regions フィーチャクラスの NULL でない整数列で、ArcSDE で RowID として使用されます。region は、regions フィーチャクラスの空間列です。
フィーチャクラスを emp_region_view 定義に含めるために、gdb ユーザには regions フィーチャクラスに少なくとも SELECT 権限が必要です。
ここで、ビューはテーブルとして ArcSDE に登録されます(TABLE_REGISTRY システム テーブルに、そのためのエントリがあります)。ArcGIS Desktop で表示すると、ビューはテーブルとして表示されます。
Grant privileges on the view
SQL または sdetable コマンドを使用して、ビューの権限を付与できます。
In Example: Creating a spatial view in Informix using SQL and registering it, SQL is used to grant privileges on the view. In this example, the sdetable command with the grant operation is used.
sdetable -o grant -t emp_region_view -U dispatch1 -A SELECT -u gdb -p gdb.bdg -i sde:informix -s myidsserver -D testdb -I
-I オプションを指定して、ユーザ dispatch1 にビューの権限を他のユーザに付与することを許可しています。
Register the view as a layer
sdetable コマンドを使用してビューを作成したときに、ビューはテーブルとして ArcSDE に登録されました。ビューをレイヤとして表示するには、sdelayer コマンドを使用して登録する必要があります。
sdelayer -o register -l emp_region_view,region -e a -C reg_id,USER -t ST_GEOMETRY -E 2.20,2.20,3.01,3.01 -R 1 -u gdb -p gdb.bdg -i sde:informix -s myidsserver -D testdb
オプションに指定する値は、-o を除き、実際のデータによって異なります。
sdelayer および sdetable コマンドの詳細については、『コマンド リファレンス』をご参照ください。