Next_GlobalID

Определение

Next_GlobalID получает в качестве входного параметра таблицу, зарегистрированную в базе геоданных, и возвращает следующее значение GlogalID.

Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.

Поле globalID добавляется, чтобы позволить таблице участвовать в репликации базы геоданных. Функция Next_GlobalID не возвращает значения для других полей GUID.

Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.

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

ПримечаниеПримечание:

Чтобы использовать функцию Next_GlobalID в PostgreSQL, вы должны установить модуль PostgreSQL uuid-ossp contrib в ту базу данных, где хранится ваша база геоданных.

Чтобы получить следующее значение GlobalID в базе данных SQL Server, используйте функцию SQL Server newid().

Синтаксис

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

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

Тип возврата

Строка

Примеры

Следующие примеры демонстрируют использование функции NextGlobalID в базах данных, в которых это поддерживается.

Таблицы, которые зарегистрированы в базе геоданных, содержат столбцы ObjectID (RowID). Поэтому, когда вы добавляете запись в таблицу базы геоданных, содержащую столбец GlobalID, то вы также должны добавить значение RowID.

Пример для каждой базы данных добавляет запись в таблицу sitings, владельцем которой является buse, и вызывает процедуру Next_RowID, чтобы добавить значение в поле ObjectID, и процедуру Next_GlobalID, чтобы добавить значение в поле GlobalID. В DB2 вам необходимо сначала вызвать процедуру Next_RowID, чтобы получить значение для поля ObjectID, а затем использовать это значение в выражении insert, включая процедуру Next_GlobalID, чтобы добавить значение в поле GlobalID.

DB2

Поскольку таблицы базы геоданных содержат непустое поле ObjectID, вам необходимо сначала получить значение, которое будет добавлено в это поле. В приведенном примере, следующее значение RowID получено для поля ObjectID (698), затем запись со следующим значением RowID добавлена в таблицу, и функция Next_GlobalID использована для того, чтобы добавить значение в поле GlobalID.

CALL sde.next_rowid('BUSE', 'SITINGS', ?, ?, ?);

Value of output parameters
----------------------------
Parameter Name :   O_ROWID
Parameter Value :  698

Parameter Name :   O_MSGCODE
Parameter Value :  0

Parameter Name :   O_MESSAGE
Parameter Value :  Procedure successfully completed.

Return Status = 1

INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES
(698, sde.next_globalid, 'golem');

The SQL command completed successfully

Oracle

INSERT INTO wuse.sitings (objectid, globalid, mon_type)
VALUES
(sde.gdb_util.next_rowid('WUSE', 'SITINGS'), sde.gdb_util.next_globalid, 'golem');

1 row created

PostgreSQL

INSERT INTO wuse.sitings (objectid, globalid, mon_type)
VALUES
(sde.next_rowid('wuse', 'sitings'), sde.next_globalid(), 'golem');

Query returned successfully: 1 row affected, 109 ms execution time.
9/11/2013