RowID_Name

定义

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

相关主题

5/25/2014