对于在Oracle数据库中,用视图(View)来组建表间连接提高查询检索效率的方法会经常用到。在GIS系统中,我们也会经常需要进行表间的查询,如:从空间位置查找该空间地物相关的属性信息表。我们常规的做法一般是先通过空间查询,再用关键字段进行关联查询。但在有些情况,如:进行插值时,需要空间表的空间位置,但需要另外一张表的某个属性作为插值字段,就无法实现,必须通过视图的方式来实现。
在ArcSDE中,可通过sdetable命令来创建视图,该视图可为一般的没有空间信息的,也可为有空间位置的。
sdetable命令的格式为:
sdetable -o create_view -T -t -c [-a ] [-w <"where_clause">] [-i ] [-s ] [-D ]
[-u ] [-p ] [-N] [-q]
[-u ] [-p ] [-N] [-q]
其中:
-T 为视图名,创建完成后,在arccatalog中浏览与普通的table或是featureclass相同;
-t 为参与的表名,各表间用“,”隔开,另外,各表名前需加上所属用户,如:sde.tablename;
-c 为目标视图列,一般格为:用户.表名.字段名,如:sde.sampletable.samplefield。可用.*代表所指定表的所有字段。若参与的table有featureclass(空间表),则若指了shape字段,则结果视图将带有空间信息,与featureclass相似,若没有指定shape字段,则为普通表,与table类似。
[-a ]为可选项,一般不用设置;
[-w <"where_clause">]为视图的逻辑条件,为一般的SQL语句where 后面的语句,注意:该语句需用双引号;
[-i ] [-s ] [-D ]为指定ArcSDE所在服务器,数据库名以及服务名,若是在本机上操作,则这些参数可省;
[-u ]为用户名,该用户名为SDE用户名;
[-p ]为SDE密码,即登陆SDE数据库的密码。
以下为创建一个带有空间信息的视图例子:
sdetable -o create_view -T v_xntd -t sip_gxglsde.tm_xntd_aat,sip_gxgldb.v_xntd_glzt -c sip_gxglsde.tm_xntd_aat.*,sip_gxgldb.v_xntd_glzt.* -u sip_gxglsde -p
sip_gxglsde -s 192.168.0.18 -w "sip_gxglsde.tm_xntd_aat.featid=sip_gxgldb.v_xntd_glzt.xntdbh"
题外话:带空间位置的视图可以直接应用于专题图的制作以及图属关联查询
题外话:带空间位置的视图可以直接应用于专题图的制作以及图属关联查询