示例:使用 SQL 在 PostgreSQL 中创建空间视图

复杂程度: 初级 数据要求: 使用自己的数据

通过使用 SQL 并将空间列包含到视图定义中,可以创建空间视图。您需要执行此操作才能在 ArcMap 中查看要素。还可以创建空间视图以允许使用包含多个空间列的表;您的空间视图仅包含一个空间列,因此 ArcGIS 可以使用该视图。

本示例在 employees 表与 region 要素类之间创建了一个空间视图来连接数据。

创建包含空间列的视图

对视图进行定义,使其包括来自要素类的空间列和 ObjectID 以及所需的其他属性列。

employees 表和 region 要素类的所有者是 gdb 用户;因此,该用户已经具有创建该视图的所需权限。

提示提示:

要创建视图,用户必须至少具有对视图中包含的各个表或要素类的 select 权限。

psql testdb gdb
Enter password for user gdb:

CREATE VIEW emp_region_view
AS SELECT (
	employees.emp_name,employees.emp_id,
	hbear.region.rname,
	hbear.region.reg_id,
	hbear.region.region)
	FROM employees, hbear.regions
	WHERE employees.emp_id = hbear.regions.emp_id;

reg_id 是 region 要素类的非空、整数 ObjectID 列。Region 是来自 region 要素类的空间列。表基于 emp_id 列进行连接。

授予空间视图权限

既然视图已经存在,那么将 select 权限授予 dispatch_mgr。通过包含 WITH GRANT OPTION,用户 dispatch_mgr 便可将视图权限授予其他用户、组或角色。

GRANT SELECT 
ON gdb.emp_region_view
TO dispatch_mgr WITH GRANT OPTION;
5/10/2014