RowID_Name

Определение

RowID_Name получает таблицу в качестве входного параметра и возвращает имя поля ObjectID (или RowID) таблицы. Это удобно, если необходимо выполнить неверсионное редактирование в таблице базы геоданных с помощью SQL; необходимо знать имя поля ObjectID, чтобы добавить в него значения.

Если таблица не зарегистрирована в базе геоданных, будет возвращено сообщение об ошибке или нулевое значение.

Синтаксис

<geodatabase administrator schema>.rowid_name(<table owner>, <table name>)

В большинстве баз геоданных для схемы администратора базы геоданных используется sde. Однако для баз геоданных с dbo-схемой в SQL Server это dbo, а для баз геоданных с пользовательской схемой в Oracle - это имя пользовательской схемы.

Тип возврата

Строка

Примеры

Ниже приведены примеры использования функции RowID_Name в базе данных каждого типа.

Первый пример выполняет запрос для получения имени столбца RowID, зарегистрированного в таблице customers, владельцем которой является mgr.

Второй пример выполняет запрос для получения имени столбца RowID, зарегистрированного в таблице inventory. Однако таблица inventory не зарегистрирована в базе геоданных; поэтому не имеет зарегистрированного столбца 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