Is_Versioned

定义

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
9/15/2013