Definición
RowID_Name toma una tabla como un parámetro de entrada y devuelve el nombre del campo ObjectID (o RowID) de la tabla. Esto es útil si desea realizar ediciones no versionadas contra una tabla de geodatabase con SQL. Debe conocer el nombre del campo ObjectID para poder insertar los valores en él.
Se devuelve un error o valor nulo si la tabla no está registrada con la geodatabase.
Sintaxis
<geodatabase administrator schema>.rowid_name(<table owner>, <table name>)
En la mayoría de las geodatabases,el esquema del administrador de la geodatabase es sde. Sin embargo, en geodatabases de esquema dbo en SQL Server es dbo y en geodatabases de esquema de usuario en Oracle es el nombre del esquema del usuario.
Tipo de devolución
Cadena de caracteres
Ejemplos
Los siguientes son ejemplos del uso de la función RowID_Name en cada tipo de base de datos.
El primer ejemplo consulta por el nombre de la columna RowID registrado para la tabla de clientes propiedad de mgr.
El segundo ejemplo consulta por el nombre de la columna RowID registrado para la tabla de inventario. La tabla de inventario no está registrada con la geodatabase, por lo que no dispone de una columna RowID registrada.
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