例: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 コマンドの詳細については、『コマンド リファレンス』をご参照ください。


3/6/2012