例:sdetable コマンドを使用した DB2 での空間ビューの作成
sdetable コマンドの -c オプションで指定する列のリストに空間列を含めることにより、空間ビューを作成できます。sdetable コマンドを使用して空間ビューを作成する場合、ビューはテーブルとして ArcSDE に登録されます。ビューをレイヤとして登録するには、sdelayer コマンドを使用します。
この例では、sdetable コマンドを使用してフィーチャクラスと非空間テーブルの列を組み込んだ空間ビューを作成し、このビューの権限をユーザに与えます。その後、ビューをレイヤとして ArcSDE に登録します。
空間ビューの作成
次の例では、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" -s mydb2server -i sde:db2 -D testdb -u gdb -p gdb.bdg
この例のビューには 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 で表示すると、ビューはテーブルとして表示されます。
ビューの権限の付与
SQL または sdetable コマンドを使用して、ビューの権限を付与できます。
「例: SQL を使用した DB2 での空間ビューの作成と登録」では、SQL を使用してビューの権限を付与しています。この例では、sdetable コマンドに grant 操作を指定して権限を付与しています。
sdetable -o grant -t emp_region_view -U dispatch1 -A SELECT -s mydb2server -i sde:db2 -D testdb -u gdb -p gdb.bdg -I
-I オプションを指定して、ユーザ dispatch1 にビューの権限を他のユーザに付与することを許可しています。
ビューをレイヤとして登録
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:db2 -s mydb2server -D testdb
オプションに指定する値は、-o を除き、実際のデータによって異なります。
sdelayer および sdetable コマンドの詳細については、『コマンド リファレンス』をご参照ください。