Oracle のグローバル ID(GUID)列に対する SQL による値の挿入

GUID データ タイプは、中括弧({})で囲まれた 36 文字のレジストリ形式の文字列を格納します。この文字列によって、ジオデータベース内とジオデータベース間でフィーチャまたはテーブル行を一意に識別できます。グローバル ID は、一方向および双方向のジオデータベース レプリカとオフライン マップで使用されるバージョン非対応のデータで、レコードの一意性を維持するために使用されます。GUID はどのテーブルにも追加できます。

編集するテーブルがレプリケーションまたはオフライン マップに関与している場合、または GUID 列を含む場合、SQL を使用してテーブルに新しいレコードを挿入するときに、グローバル ID(GUID)列に一意の値を挿入する必要があります。この操作には、sde.gdb_util.next_globalid ユーティリティを使用できます。

履歴管理が有効でないバージョン非対応のテーブルを編集する場合は、ユーティリティを使用して ID を直接テーブルに挿入します。履歴管理が有効なバージョン非対応のテーブルを編集する場合は、ユーティリティを使用して ID をテーブルの履歴管理ビューに挿入します。バージョン対応登録されたテーブルを編集する場合は、ユーティリティを使用して値をテーブルのバージョン対応ビューに挿入します。

手順:
  1. SQL*Plus のような SQL エディタを開きます。
  2. テーブルを編集する権限を持ったユーザとしてデータベースに接続します。

    バージョン対応ビューまたは履歴管理ビューを通して編集する場合、ユーザにはビューを編集する権限も必要です。

  3. レコードの挿入時は、sde.gdb_util.next_globalid ユーティリティを使用して、次のグローバル ID(GUID)値を挿入します。

    この例では、mytable にレコードを挿入します。テーブルには、ObjectID および ST_Geometry 列が含まれます。

    INSERT INTO user22.mytable (objectid, globalid, shape) 
     VALUES (
      sde.gdb_util.next_rowid('USER22', "MYTABLE'),
      sde.gdb_util.next_globalid(),
      (sde.st_polygon('polygon ((10000 520000, 100008889 55000, 1045545983 234280934,
    10000 520000))',4326))
     );
    
  4. 編集が完了したら、データベースにコミットします。

関連トピック

5/25/2014