Informix のバージョン非対応ジオデータベース データの SQL による編集
ジオデータベースのバージョン対応登録されていないテーブルのデータがジオデータベースの振舞いに関与しない場合、そのデータに対して SQL による更新、挿入、削除操作を実行できます。SQL を使用して編集できないデータ タイプとジオデータベースの振舞いについては、「SQL で編集可能なデータ タイプ」をご参照ください。

バージョン対応登録されていないテーブルを SQL を使用して編集するときに、履歴管理が有効化されている場合は、テーブル自体ではなく、テーブルの履歴管理ビューを編集する必要があります。ビューは ArcGIS が管理しているフィールドを自動的に更新します。詳細については、「履歴管理ビューとは」と関連トピックをご参照ください。
ジオデータベースに登録されたデータはすべて、システムによって保守される NULL でない一意の ObjectID(Row ID)フィールドを持ちます。SQL を使用してジオデータベースのバージョン対応登録されていないテーブルにレコードを挿入するときは、ObjectID 用の一意な値を設定する必要があります。SQL を使用して ObjectID フィールドに値を挿入するには、Next_Row_ID 関数を使用します。
次の一連の手順では、バージョン対応登録されていないテーブルの行を 1 行ずつ更新して、ObjectID を挿入する方法を説明します。通常は、ObjectID を取得してデータを更新するルーチンまたはクライアント プログラムを作成することになります。
-
I-SQL などの SQL エディタからデータベースにログインします。
データを編集する権限を持ったユーザとしてデータベースにログインしてください。
-
table_registry テーブルをクエリして、行を挿入するテーブルの登録 ID と所有者を取得します。
この例では、factories テーブルの登録 ID と所有者名が返されます。
SELECT owner,registration_id,table_name FROM sde.table_registry WHERE table_name='factories'; owner registration_id table_name editor1 7 factories
- next_row_id 関数を実行し、使用可能な次の行 ID の値を取得するために、ログインします。
-
next_row_id 関数を実行します。この関数は sde ユーザが所有します。
この例では、editor1 がテーブル所有者で、7 が factories テーブルの登録 ID です。
EXECUTE FUNCTION "sde".next_row_id('editor1',7); ret_code 0 err_msg rowid 18 1 row(s) retrieved.
-
SQL エディタに戻り、テーブルにレコードを挿入します。
INSERT INTO factories VALUES ( 18, 'makem' ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',4326) );
テーブルに GUID または Global ID フィールドが含まれている場合は、このフィールドにも一意の値を指定する必要があります。詳細については、「Informix のグローバル ID(GUID)列に対する SQL による値の挿入」をご参照ください。