Oracle に格納されたジオデータベースのキーセット テーブル
キーセット テーブルは ArcGIS Desktop クライアントが整数、番号、日付、文字列タイプの属性を使用してテーブルを結合するジオデータベース リレーションシップ クエリを実行するときに、選択された行のリストを保持するために使用されます。
「Oracle 用 ArcSDE ログ ファイル設定オプション」で説明しているように、ログ ファイル テーブルには選択フィーチャの OBJECTID が格納されます。キーセット テーブルは、OBJECTID 以外の属性による結合に対応するために使用されます。
キーセット テーブルはデータベース クエリのソース選択セットの行の数が 99 を超えるセッション(接続)ごとに 1 つ作成されます。
ArcGIS Desktop のキーセット テーブル
ArcGIS Desktop ではキーセット テーブルを確認できません。ただし、キーセット テーブルを作成し、データを設定することは可能です。そのためには、ArcMap のリレーションシップ クラスに関与するフィーチャクラスで 99 個を超えるレコードを選択した後、属性テーブルを開き、オプション メニューの関連テーブル リストを使用して関連テーブルを取得します。また、編集セッションの開始時にもキーセット テーブルが作成されます。
Oracle データベースのキーセット テーブル
キーセット テーブルは、次のどちらかの状態になるまでジオデータベースに作成されません。
- ArcGIS Desktop を通じて選択が実行される
- 編集セッションが開始される
CREATE TABLE 権限を持つユーザが、キーセット テーブルの作成にいたる操作を行うと、キーセット テーブルはそのユーザのスキーマに作成されます。ユーザが CREATE TABLE 権限を持っていない場合は、ArcSDE 管理者のスキーマにキーセット テーブルを作成するプロシージャが実行されます。ArcGIS Desktop で条件を満たす選択が行われた場合、キーセット テーブルが作成され、レコードが追加されます。編集セッションを開始すると、キーセット テーブルは作成されますが、条件を満たす選択セットが作成されるまで空のままになります。キーセット テーブルは、ユーザがデータベースへの接続を終了したときに削除されます。
キーセット テーブルの命名規則は次のとおりです。
<user_schema>.keyset_<process_id>
キーセット テーブルは選択セットのキーセット ID 番号とフィーチャクラス間のリレーションシップのベースとなるフィールドの値を格納します。
次に、LATERALS テーブルと CONTRACTORS テーブル間で選択を行うためのキーセット テーブルを示します。この場合、LONG_VAL フィールドには、LATERALS テーブルと CONTRACTORS テーブルのリレーションシップ クラスのベースとなる CONTRACTOR_ID フィールドの値が含まれます。
<user_schema>.keyset_<process_id>
次に、Oracle のキーセット テーブルの定義を示します。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
KEYSET_ID |
NUMBER(38) |
キーセット選択の ID。 |
NOT NULL |
LONG_VAL |
NUMBER |
リレーションシップ クラスのベースとなるフィールドが数値フィールドの場合、そのフィールドの値。 |
|
STR_VAL |
NVARCHAR2(256) |
リレーションシップ クラスのベースとなるフィールドが文字列フィールドの場合、そのフィールドの値。 |
|
DBL_VAL |
DOUBLE |
リレーションシップ クラスのベースとなるフィールドが倍精度数値フィールドの場合、そのフィールドの値。 |
|
DATE_VAL |
DATE |
リレーションシップ クラスのベースとなるフィールドが日付フィールドの場合、そのフィールドの値。 |
XML ドキュメントのキーセット テーブル
キーセット テーブルは一時的なテーブルのため、XML ドキュメントに格納することはできません。