Definition
RowID_Name verwendet eine Tabelle als Eingabeparameter und gibt den Namen der ObjectID (oder RowID)-Tabelle zurück. Dies ist hilfreich, wenn Sie nicht versionierte Änderungen für eine Geodatabase-Tabelle mit SQL durchführen. Sie müssen den Namen des ObjectID-Feldes kennen, um Werte einfügen zu können.
Falls die Tabelle nicht in der Geodatabase registriert ist, wird eine Fehlermeldung oder NULL zurückgegeben.
Syntax
<geodatabase administrator schema>.rowid_name(<table owner>, <table name>)
Bei den meisten Geodatabases lautet das Geodatabase-Administrator-Schema "sde". Im Falle von DBO-Schema-Geodatabases in SQL Server lautet das Schema "dbo", und bei Benutzerschema-Geodatabases in Oracle ist dies der Name des Benutzerschemas.
Rückgabetyp
String
Beispiele
Nachfolgend finden Sie Beispiele für die Verwendung der Funktion "RowID_Name" bei allen Datenbanktypen.
Im ersten Beispiel wird der Name der RowID-Spalte abgefragt, die für die Tabelle "customers" registriert ist, die im Besitz von "mgr" ist.
Im zweiten Beispiel wird der Name der RowID-Spalte abgefragt, die für die Tabelle "inventory" registriert ist. Die Tabelle "inventory" ist nicht in der Geodatabase registriert und weist daher keine registrierte RowID-Spalte auf.
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