Définition
RowID_Name utilise une table comme paramètre en entrée et renvoie le nom du champ ObjectID (ou RowID) de la table. Cette fonction est utile si vous voulez effectuer des mises à jour non versionnées en fonction d'une table de géodatabase à l'aide de SQL. Vous devez connaître le nom du champ ObjectID pour pouvoir y insérer des valeurs.
Un message d'erreur ou la valeur Null est renvoyé(e) si la table n'est pas inscrite dans la géodatabase.
Syntaxe
<geodatabase administrator schema>.rowid_name(<table owner>, <table name>)
Dans la plupart des géodatabases, la structure de l'administrateur de géodatabase est la structure sde. La structure est cependant dbo dans les géodatabases de structure dbo dans SQL Server et le nom de la structure utilisateur dans les géodatabases de structure utilisateur dans Oracle.
Type de retour
Chaîne
Exemples
Les exemples suivants utilisent la fonction RowID_Name dans chaque type de base de données.
Le premier exemple illustre une requête visant à obtenir le nom de la colonne RowID inscrite pour la table customers détenue par mgr.
Le second exemple illustre une requête visant à obtenir le nom de la colonne RowID inscrite pour la table inventory. La table inventory n'est pas inscrite dans la géodatabase et ne comporte donc pas de colonne RowID inscrite.
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