定义
Is_Versioned 以表作为输入参数,如果表已被注册为版本,则返回 TRUE。如果表未注册为版本,则 Is_Versioned 返回 FALSE。如果表未注册到地理数据库,则返回一条指明该情况的消息。如果您提供的表名在数据库中不存在(例如,输入的表名不正确),您也会收到一条指明表未注册到地理数据库的消息,因为 Is_Versioned 只会检查表在 TABLE_REGISTRY 系统表中是否存在。
语法
<geodatabase administrator schema>.is_versioned (<table owner>, <table name>)
在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。
返回类型
字符串
示例
下面是在每种支持的数据库类型中使用 Is_Versioned 函数的示例。
第一个示例查询由 tech3 所有的 laterals 表,以确定其是否已注册为版本。
第二个示例查询由 crewboss 所有的 crews 表,以确定其是否已注册为版本。Crews 未注册为版本;因此,返回 FALSE。
第三个示例查询由 dentry 所有的 service_areas。service_areas 表未注册到地理数据库。
DB2
VALUES sde.is_versioned('TECH3', 'LATERALS')
TRUE
VALUES sde.is_versioned('CREWBOSS', 'CREWS')
FALSE
VALUES sde.is_versioned('DENTRY', 'SERVICE_AREAS')
Application raised error or warning with diagnostic text:
"MYDB.DENTRY.SERVICE_AREAS is not registered to the geodatabase".
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