定义
Is_Simple 以表作为输入,如果表未参与扩展的地理数据库行为(因此将其视为简单表),则返回 TRUE。扩展的地理数据库行为包括以下内容:
- 注记
- 附件
- 尺寸
- 编辑者追踪
- 几何网络
- 镶嵌数据集
- 网络数据集
- 宗地结构
- 栅格目录
- 栅格数据集
- 关系类
- 逻辑示意图数据集
- Terrain
- 拓扑
如果指定的表参与了扩展的地理数据库功能(因此不是简单表),则 Is_Simple 将返回 FALSE。如果表不是简单表,则不应在 ArcGIS 之外对其进行编辑。
如果指定表未注册到地理数据库,则 Is_Simple 将返回 NOT REGISTERED。请注意,如果表不存在于数据库中(例如,输入的名称不正确),则会返回一条指明表没有注册的消息,因为 Is_Simple 只检查地理数据库系统表以查看表是否存在。
语法
<geodatabase administrator schema>.is_simple (<table owner>, <table name>)
在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。
返回类型
字符串
如果指定表已注册到地理数据库,并且已启用存档功能,则返回 TRUE。
如果指定表已注册到地理数据库,但尚未启用存档功能,则返回 FALSE。
如果指定表未注册到地理数据库,数据库中不存在指定表,或者您无权访问该表,则返回 NOT REGISTERED。
示例
下面给出了在支持 Is_Simple 函数的数据库中使用该函数的示例。
在第一个示例中,查询了由 pw 用户所有的 gutters 表,以确定该表是否被视为简单表。由于 gutters 表参与了几何网络并且具有拓扑,因此 Is_Simple 函数返回 FALSE。
在第二个示例中,查询了由 pw 用户所有的 surveypts 表,以确定该表是否被视为简单表。由于 surveypts 表未参与任何地理数据库功能,因此 Is_Simple 函数返回 TRUE。
在第三个示例中,查询了由 mgrs 用户所有的 imports 表。在此示例中,通过第三方应用程序创建了 imports 表,并且未注册到地理数据库。
Db2
VALUES sde.is_simple('PW','GUTTERS')
FALSE
VALUES sde.is_simple('PW','SURVEYPTS')
TRUE
VALUES sde.is_simple('MGRS','IMPORTS')
NOT REGISTERED
Oracle
SELECT SDE.GDB_UTIL.Is_Simple('PW', 'GUTTERS') FROM DUAL;
SDE.GDB_UTIL.IS_SIMPLE('PW', 'GUTTERS') ---------------------------------------------------
FALSE
SELECT ENG.GDB_UTIL.Is_Simple('ENG', 'SURVEYPTS') FROM DUAL;
ENG.GDB_UTIL.IS_SIMPLE('PW', 'SURVEYPTS') ---------------------------------------------------
TRUE
SELECT SDE.GDB_UTIL.Is_Simple('MGRS', 'IMPORTS') FROM DUAL;
SDE.GDB_UTIL.IS_SIMPLE('MGRS', 'IMPORTS') ---------------------------------------------------
NOT REGISTERED
PostgreSQL
SELECT sde.is_simple('pw', 'gutters');
FALSE
SELECT sde.is_simple('pw', 'surveypts');
TRUE
SELECT sde.is_simple('mgrs', 'imports');
NOT REGISTERED
SQL Server
DECLARE @owner nvarchar(128) = 'pw';
DECLARE @table nvarchar(128) = 'gutters';
SELECT dbo.is_simple(@owner, @table) "Simple?"
Simple?
FALSE
DECLARE @owner nvarchar(128) = 'eng';
DECLARE @table nvarchar(128) = 'surveypts';
SELECT sde.is_simple(@owner, @table) "Simple?"
Simple?
TRUE
DECLARE @owner nvarchar(128) = 'mgrs';
DECLARE @table nvarchar(128) = 'imports';
SELECT sde.is_simple(@owner, @table) "Simple?"
Simple?
NOT REGISTERED