Oracle 中的视图
创建视图可在进行数据请求时限制所搜索的表和列的数量,从而缩短查询响应时间。您可以创建以要素类或非空间表的形式出现在客户端应用程序中的视图。ArcSDE 视图可引用单个表或要素类,或者您也可以创建视图来连接多个表中的数据。
任何拥有所需权限的用户都可以使用 SQL 或 ArcSDE sdetable 命令来创建视图。此外,如果创建的视图允许进行编辑,视图还可以用来编辑数据。有关创建或编辑视图所需权限的信息,请参阅相应版本的 Oracle 文档。
通过查询 ALL_VIEWS 数据字典视图可以访问 Oracle 中的视图定义。
Oracle 数据字典中存储视图信息
使用 SQL 或 sdetable 命令在 Oracle 数据库中创建视图时,视图将在 Oracle 数据字典中进行定义。因此,您可以查询 Oracle 数据字典来查看视图定义。
Oracle 中存在一个用户可访问的视图 ALL_VIEWS,此视图用于描述连接用户有权访问的所有视图。以下是 ALL_VIEWS 视图的定义。
DESCRIBE all_views;
名称 |
是否允许为空 |
类型 |
---|---|---|
OWNER |
NOT NULL |
VARCHAR2(30) |
VIEW_NAME |
NOT NULL |
VARCHAR2(30) |
TEXT_LENGTH |
NUMBER | |
TEXT |
LONG | |
TYPE_TEXT_LENGTH |
NUMBER | |
TYPE_TEXT |
VARCHAR2(4000) | |
OID_TEXT_LENGTH |
NUMBER | |
OID_TEXT |
VARCHAR2(4000) | |
VIEW_TYPE_OWNER |
VARCHAR2(30) | |
VIEW_TYPE |
VARCHAR2(30) | |
SUPERVIEW_NAME |
VARCHAR2(30) | |
EDITIONING_VIEW* |
VARCHAR2(1) | |
READ_ONLY* |
VARCHAR2(1) |
*只存在于 Oracle 11g 数据库中。
视图包含所有者、名称和文本。ALL_VIEWS 的 TEXT 列包含定义视图的查询文本。
除了限制对某些记录的访问之外,您还可以针对包含多个 SDO_Geometry 或 ST_Geometry 列的表使用视图,以便可以将其注册到 ArcSDE。由于 ArcSDE 不支持包含多个几何列的图层,所以要注册图层,必须先创建只包含一个几何列的视图。要了解如何对 Oracle Spatial 表执行此操作,请参阅知识库文章创建 Oracle Spatial 图层(包含多个几何列)的 Oracle 视图并将其注册到 ArcSDE。有关如何对包含多个 ST_Geometry 列的表执行此操作的说明,请参阅针对包含 ST_Geometry 列的表创建空间视图。