方法
下記の手順は、エンタープライズ ジオデータベースのバージョン対応ビューの、Global ID または GUID (Globally Unique Identifier) 列に、Oracle 用 SQL (Structured Query Language) を使用して値を挿入する方法を示しています。
Global ID と GUID データ タイプは、中括弧 ({}) で囲まれた 36 文字のレジストリ形式の文字列を格納します。 これらの文字列によって、ジオデータベース内およびジオデータベース間のフィーチャまたはテーブル行を一意に識別できます。 一方向と双方向のジオデータベース レプリケーションでは、フィーチャがこのようにして追跡され、リレーションシップや GUID が必要なアプリケーションに使用されます。
リレーションシップでは、Global ID フィールドが関連元キーの場合、GUID フィールドは関連先のキーでなければなりません。 ArcCatalog を右クリックして [Global ID の追加] をクリックし、ArcCatalog のフィーチャクラスに Global ID を追加します。 これらの値はジオデータベースによって自動的に管理されます。 ArcCatalog で GUID フィールドを作成し、その値を管理します。
Global ID 列を含むバージョン対応ビューに行を挿入するとき、SQL を使用すると、Global ID 列に一意の GUID 値が入力されます。
注意: Global ID、GUID、およびジオデータベース レプリケーションに関する詳細は、ArcGIS Desktop ヘルプの関連情報セクションをご参照ください。ここで示す例は Oracle に固有の内容ですが、サポートされている他のデータベースでも手順は同様です。
CREATE OR REPLACE FUNCTION GDB_GUID RETURN NCHAR IS guid NCHAR (38); BEGIN guid := upper(RAWTOHEX(SYS_GUID())); RETURN '{'||substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12)||'}'; END; /
grant execute on gdb_guid to public;
"geodatabase administrator" table -o create_mv_view -T parcels_v -t parcels -i <port> -u <user> -p <password>
注意: エンタープライズ ジオデータベースでのバージョン対応ビューの作成と使用については、ArcGIS Desktop ヘルプをご参照ください。
select registration_id,table_name from sde.table_registry where table_name='PARCELS'; REGISTRATION_ID TABLE_NAME --------------- --------------------- 113 PARCELS
select srid from sde.st_geometry_columns where table_name='PARCELS' and owner='USER1'; SRID ---------- 7
--新しいバージョンを作成。 variable mvvers nvarchar2(97); exec :mvvers := 'PARCELS_42'; exec sde.version_user_ddl.create_version('SDE.DEFAULT',:mvvers,sde.version_util.C_take_name_as_given,sde.version_util.C_version_public,'Parcels WorkOrder 42 Version');
注意: エンタープライズ ジオデータベースでのバージョン対応ビューの編集については、ArcGIS Desktop ヘルプをご参照ください。以下の例の説明は次のとおりです。
注意: エンタープライズ ジオデータベースの ST_GEOMETRY タイプとジオメトリの挿入については、ArcGIS Desktop ヘルプをご参照ください。
--編集するバージョンを設定。 exec sde.version_util.set_current_version('USER1.PARCELS_42'); --編集セッションを開始。 exec sde.version_user_ddl.edit_version('USER1.PARCELS_42',1); --目的の挿入を実行。 --空間ジオメトリ タイプの場合、シェープを挿入可能。 insert into parcels_v (objectid,globalid,shape) values (sde.version_user_ddl.next_row_id('USER1',113),sde.GDB_GUID,(sde.st_polygon ('polygon ((10000 520000, 100008889 55000, 1045545983 234280934, 10000 520000))',7))); --非空間ジオメトリ タイプ (Binary、LOB など) の場合、NULL シェープの挿入が必要: insert into parcels_v (objectid,globalid,shape) values (sde.version_user_ddl.next_row_id('USER1',113),sde.GDB_GUID, NULL); --編集セッションを停止。 exec sde.version_user_ddl.edit_version('USER1.PARCELS_42',2); --編集をコミット。 commit;
ArcGIS エキスパートのサポートを受ける
Esri Support アプリのダウンロード