示例:使用 sdetable 命令在 DB2 中创建空间视图

复杂性:入门级 数据要求:使用自备的数据

可按以下方法来创建空间视图:使用 sdetable 命令并在通过 –c 选项指定的列所组成的列表中包括空间列。使用 sdetable 命令创建空间视图时,视图将注册为 ArcSDE 中的表。要将视图注册为图层,请使用 sdelayer 命令。

本示例使用 sdetable 命令创建将要素类和非空间表中的列整合到一起的空间视图,并授予其权限。然后将视图作为图层注册到 ArcSDE 中。

创建空间视图

在以下示例中,表 employees 与要素类 regions 连接在一起。两张表基于各自的 emp_id 连接在一起。

sdetable -o create_view -T emp_region_view -t employees,regions
-c 'employees.name,employees.emp_id,regions.reg_id,regions.rname,regions.region'
-a 'employee,eid,rid,region,area' -w "employees.emp_id = regions.emp_id"
-s mydb2server -i sde:db2 -D testdb -u gdb -p gdb.bdg

在本示例中,由于视图中的列来自两张不同的表,这使得表名特别长,因此,使用 –a 选项为各列指定别名。但是,只有在视图中的列名不明确时,才需要分配别名。例如,如果在两张表之间创建一个视图并包括二者的名称列,则应为列指定别名,以便区分名称。如果使用 –a 选项为列名分配别名,则在 –c 和 –a 列表中,列及其排列顺序必须相同。

reg_id 是来自 regions 要素类的非空整型列,用作 ArcSDE 中的行 ID。Region 是来自 regions 要素类的空间列。

提示提示:

gdb 用户必须至少具有 regions 要素类的 select 权限,才能将其包含到 emp_region_view 定义中。

现在,该视图已作为表注册到 ArcSDE 中(TABLE_REGISTRY 系统表中包含该视图对应的条目)。通过 ArcGIS Desktop 查看该视图时,它将显示为表。

授予视图权限

可使用 SQL 或 sdetable 命令授予视图权限。

示例:使用 SQL 在 DB2 中创建空间视图并对其进行注册中,使用 SQL 授予视图权限。在本示例中,使用 sdetable 命令的 grant 操作。

sdetable -o grant -t emp_region_view -U dispatch1 -A SELECT 
-s mydb2server -i sde:db2 -D testdb -u gdb -p gdb.bdg -I

通过包含 –I 选项,用户 dispatch1 便可将视图权限授予其他用户。

将视图注册为图层

使用 sdetable 命令创建视图时,该视图已作为表注册到 ArcSDE 中。要以图层形式查看视图,必须使用 sdelayer 命令对其进行注册。

sdelayer -o register -l emp_region_view,region -e a
-C reg_id,USER -t ST_GEOMETRY -E 2.20,2.20,3.01,3.01 -R 1
-u gdb -p gdb.bdg -i sde:db2 -s mydb2server -D testdb

为除 –o 外的选项所提供的值将视数据而定。

有关 sdelayer 和 sdetable 命令的详细信息,请参阅《管理命令参考》


3/7/2012