定义
RowID_Name 将表作为输入参数,并返回表的 ObjectID(或 RowID)字段的名称。如果要使用 SQL 针对地理数据库表执行非版本化编辑,该功能会非常有帮助;不过,必须知道 ObjectID 字段的名称以便向其中插入值。
如果表未注册到地理数据库,则会返回错误消息或空值。
语法
<geodatabase administrator schema>.rowid_name(<table owner>, <table name>)
在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。
返回类型
字符串
示例
下面是在各种数据库类型中使用 RowID_Name 函数的示例。
第一个示例查询注册到 mgr 所拥有的客户表的 RowID 列的名称。
第二个示例查询注册到清单表的 RowID 列的名称。清单表未注册到地理数据库,因此不具有注册的 RowID 列。
Db2
VALUES sde.rowid_name('MGR', 'CUSTOMERS')
ID
VALUES sde.rowid_name('MGR', 'INVENTORY')
Application raised error or warning with diagnostic text:
"MGR.INVENTORY is not registered to the geodatabase".
Oracle
SELECT sde.gdb_util.rowid_name('MGR', 'CUSTOMERS') FROM DUAL;
SDE.GDB_UTIL.ROWID_NAME('MGR', 'CUSTOMERS') --------------------------------------------------
ID
SELECT sde.gdb_util.rowid_name('MGR', 'INVENTORY') FROM DUAL;
SDE.GDB_UTIL.ROWID_NAME('MGR', 'INVENTORY') ----------------------------------------------------
SELECT sde.gdb_util.rowid_name('MGR', 'INVENTORY') FROM DUAL;
*
ERROR at line 1:
ORA-20220: Class MGR.INVENTORY not registered to the Geodatabase.
PostgreSQL
SELECT sde.rowid_name('mgr', 'customers');
id
SELECT sde.rowid_name('mgr', 'inventory');
NOT REGISTERED
SQL Server
SELECT sde.rowid_name('mgr', 'customers');
id
SELECT sde.rowid_name('mgr', 'inventory');
NULL