Определение
Is_Versioned получает таблицу в качестве входного параметра и возвращает TRUE, если таблица зарегистрирована как традиционная версионная. Если таблица не зарегистрирована как традиционная версионная, Is_Versioned возвращает значение FALSE. Если таблица не зарегистрирована в базе геоданных, Is_Versioned возвращает NOT REGISTERED. В том случае, если таблица не существует в базе данных (например, если вы неправильно ввели ее название), будет возвращено сообщение, что таблица не зарегистрирована, поскольку функция Is_Versioned проверяет только наличие или отсутствие таблицы в системных таблицах базы геоданных.
Синтаксис
<geodatabase administrator schema>.is_versioned (<table owner>, <table name>)
В большинстве баз геоданных для схемы администратора базы геоданных используется sde. Однако для баз геоданных с dbo-схемой в SQL Server это dbo, а для баз геоданных с пользовательской схемой в Oracle – это имя пользовательской схемы.
Тип возвращаемого значения
Строковое
TRUE возвращается в случае, если указанная таблица зарегистрирована в базе геоданных и как традиционная версионная.
FALSE возвращается в случае, если указанная таблица зарегистрирована в базе геоданных, но не как традиционная версионная.
NOT REGISTERED возвращается в случае, если указанная таблица не зарегистрирована в базе геоданных, не существует в базе геоданных, или у вас нет доступа к таблице.
Примеры
Следующие примеры демонстрируют использование функции Is_Versioned для каждого поддерживаемого типа базы данных.
Первый пример выполняет запрос к таблице laterals, владельцем которой является tech3, чтобы определить, является ли таблица традиционной версионной.
Второй пример выполняет запрос к таблице crews, владельцем которой является crewboss, чтобы определить, является ли таблица традиционной версионной. Таблица Crews не является традиционной версионной; поэтому возвращается значение FALSE.
Третий пример выполняет запрос к таблице service_areas, владельцем которой является dentry. Таблица service_areas не зарегистрирована в базе геоданных.
Db2
VALUES sde.is_versioned('TECH3', 'LATERALS')
TRUE
VALUES sde.is_versioned('CREWBOSS', 'CREWS')
FALSE
VALUES sde.is_versioned('DENTRY', 'SERVICE_AREAS')
NOT REGISTERED
Oracle
SELECT sde.gdb_util.is_versioned('TECH3', 'LATERALS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('TECH3', 'LATERALS') --------------------------------------------------
TRUE
SELECT sde.gdb_util.is_versioned('CREWBOSS', 'CREWS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('CREWBOSS', 'CREWS') --------------------------------------------------
FALSE
SELECT sde.gdb_util.is_versioned('DENTRY', 'SERVICE_AREAS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('DENTRY', 'SERVICE_AREAS') ----------------------------------------------------
NOT REGISTERED
PostgreSQL
SELECT sde.is_versioned('tech3', 'laterals');
TRUE
SELECT sde.is_versioned('crewboss', 'crews');
FALSE
SELECT sde.is_versioned('dentry', 'services_areas');
NOT REGISTERED
SQL Server
SELECT dbo.is_versioned('tech3', 'laterals');
TRUE
SELECT dbo.is_versioned('crewboss', 'crews');
FALSE
SELECT dbo.is_versioned('dentry', 'services_areas');
NOT REGISTERED