使用 SQL 将值插入到 Oracle 中的全局 ID 或 GUID 列中

全局 ID 和 GUID 数据类型可存储注册表样式的由大括号括起来的 36 个字符所组成的字符串。这些字符串用于唯一识别单个地理数据库中和跨多个地理数据库的要素或表行。全局 ID 用于保持单向和双向地理数据库复本中的记录以及离线地图中使用的非版本化数据的唯一性。GUID 可以添加到任何表中。

如果要编辑的表参与复制或离线地图或者包含 GUID 列,在使用 SQL 将新记录插入到表中时必须将唯一值插入到全局 ID 或 GUID 列中。要执行此操作,请使用 sde.gdb_util.next_globalid 工具。

编辑不可用于存档的非版本化表时,使用该工具将 ID 直接插入表中。编辑可用于存档的非版本化表时,使用该工具将 ID 插入表的存档视图。编辑版本化表时,使用该工具将值插入表的版本化视图。

步骤:
  1. 打开 SQL 编辑器(例如,SQL*Plus)。
  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