Определение
GlobalID_Name получает таблицу в качестве входного параметра и возвращает имя поля globalID в таблице.
Поле globalID добавляется, чтобы позволить таблице участвовать в репликации базы геоданных и для автономного использования карты. Функция GlobalID_Name не возвращает имен других полей GUID.
Вы можете использовать GlobalID_Name, если ваши поля глобального идентификатора созданы программным методом с помощью ArcObjects и вы не уверены в имени созданного поля. Если вы добавили поле глобального идентификатора к таблице с помощью ArcGIS for Desktop или инструмента геообработки Добавить Global ID (Add Global IDs) либо скрипта Python, именем поля всегда будет globalid; поэтому вам не нужно использовать GlobalID_Name для получения имени поля.
Если таблица не имеет поля globalID, то возвращается пустая строка. Если таблица не зарегистрирована в базе геоданных или не существует, будет возвращено сообщение, показывающее, что таблица не зарегистрирована в базе геоданных; может быть также возвращена строка null.
Синтаксис
<geodatabase administrator schema>.globalid_name (<table owner>, <table name>)
В большинстве баз геоданных для схемы администратора базы геоданных используется sde. Однако для баз геоданных с dbo-схемой в SQL Server это dbo, а для баз геоданных с пользовательской схемой в Oracle - это имя пользовательской схемы.
Тип возврата
Строка
Примеры
Далее следуют примеры использования функции GlobalID_Name для всех типов баз данных, поддерживающих ее.
В первом примере выполняется запрос к имени поля глобального идентификатора таблицы signs, принадлежащей insp3.
Второй пример выполняет запрос для получения имени столбца globalID в таблице addresses, владельцем которой является planner. Таблица не содержит столбца globalID.
В третьем примере выполняется запрос к имени поля глобального идентификатора таблицы partners, которой владеет insp3. Таблица partners не зарегистрирована в базе геоданных.
DB2
VALUES sde.globalid_name('INSP3', 'SIGNS')
SIGNID
VALUES sde.globalid_name('PLANNER', 'ADDRESSES')
VALUES sde.globalid_name('INSP3', 'PARTNERS')
Oracle
SELECT sde.gdb_util.globalid_name('INSP3', 'SIGNS')
FROM DUAL;
SDE.GDB_UTIL.GLOBALID_NAME('INSP3', 'SIGNS')
--------------------------------------------------
SIGNID
SELECT sde.gdb_util.globalid_name('PLANNER', 'ADDRESSES')
FROM DUAL;
SDE.GDB_UTIL.GLOBALID_NAME('PLANNER', 'ADDRESSES')
--------------------------------------------------
SELECT sde.gdb_util.globalid_name('INSP3', 'PARTNERS')
FROM DUAL;
SDE.GDB_UTIL.GLOBALID_NAME('INSP3', 'PARTNERS')
--------------------------------------------------
ORA-20220: Class INSP3.PARTNERS not registered to the Geodatabase.
PostgreSQL
SELECT sde.globalid_name('insp3', 'signs');
signid
SELECT sde.globalid_name('planner', 'addresses');
SELECT sde.globalid_name('insp3', 'partners');
NOT REGISTERED
SQL Server
SELECT sde.globalid_name('insp3', 'signs');
SignID
SELECT sde.globalid_name('planner', 'addresses');
SELECT sde.globalid_name('insp3', 'partners');
NOT REGISTERED