ArcSDE创建空间数据存储类型为ST_Geometry的要素类
2011-03-30 18:59
531 查看
摘要:创建空间数据存储类型为ST_Geometry的要素类有2种方法: 1)使用SDE创建要素类从9.3 开始,默认创建的要素类都使用ST_Geometry存储空间数据,9.3 版本之前,可以通过配置dbtune参数来完成。2)直接使用SQL语句创建要素类。
创建空间数据存储类型为ST_Geometry的要素类有2种方法:
1)使用SDE创建要素类
从9.3 开始,默认创建的要素类都使用ST_Geometry存储空间数据,9.3 版本之前,可以通过配置dbtune参数来完成。
2)直接使用SQL语句创建要素类。
1. 首先使用sqlplus连接到oracle服务器,确保登陆用户有如下权限:
CREATE TYPE
UNLIMITED TABLESPACE
CREATE LIBRARY
CREATE OPERATOR
CREATE INDEXTYPE
CREATE PUBLIC SYNONYM
DROP PUBLIC SYNONYM
The CONNECT and RESOURCE roles include these privileges.
2. 使用SQL语句创建包含ST_Geometry列的表,注意:要使SDE能够认识你创建的要素类,新建的表中有且只能有一个ST_Geometry列,并且最好包含唯一标识的列。
执行下面的sql语句
CREATE TABLE sensitive_areas (area_id integer, name varchar(128),
area_size float, type varchar(10), zone sde.st_geometry);
注意st_geometry前面应添加sde schema 名,否则会报错。
![](http://hi.csdn.net/attachment/201103/30/0_1301482723acJ3.gif)
3. 使用sdelayer命令,将创建好的表注册到SDE中
注册的时候一定要保证下面几点才能成功:
1必须是表的所有者才能注册。
2表中只能有一个ST_Geometry列。
3没有其他用户自定义类型的列。
4必须是简单的集合类型(points, lines, or polygons)。
5Geometry 必须是有效的,否则读取的时候会产生不可预期的错误。
sdelayer 命令参数如下:
sdelayer -o register -l <table,column> -e <entity_mask> [Spatial_Index]
[{-R <SRID> | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]
{[-C NONE] | [-C <row_id_column>[,{SDE|USER}[,<min_ID>]]]}
[-E {empty | xmin,ymin,xmax,ymax}] [-t <storage_type>]
[-S <layer_description_str>] [-q]
[-k <config_keyword>] [-i <service>] [-s <server_name]
[-u <DB_User_name>] [-p <DB_User_password>] [-D <database>]
在命令行中执行下列命令
sdelayer -o register -l sensitive_areas,zone -e a -C area_id,SDE -u data -p sa -t ST_GEOMETRY
-o参数为register -l参数为 表名/ST_Geometry列 -e 几何类型 -C 用户唯一id/SDE 其中SDE表示由sde维护唯一id,使用USER选项,则有用户维护唯一ID -u 注册地用户名 -p 用户密码 -t 数据存储类型
barry~~~~~~~~~~~~~
4. 在catalog中查看,可以看到sensitive_areas已经被注册到sde中,并且图标显示为polygon类型。
创建空间数据存储类型为ST_Geometry的要素类有2种方法:
1)使用SDE创建要素类
从9.3 开始,默认创建的要素类都使用ST_Geometry存储空间数据,9.3 版本之前,可以通过配置dbtune参数来完成。
2)直接使用SQL语句创建要素类。
1. 首先使用sqlplus连接到oracle服务器,确保登陆用户有如下权限:
CREATE TYPE
UNLIMITED TABLESPACE
CREATE LIBRARY
CREATE OPERATOR
CREATE INDEXTYPE
CREATE PUBLIC SYNONYM
DROP PUBLIC SYNONYM
The CONNECT and RESOURCE roles include these privileges.
2. 使用SQL语句创建包含ST_Geometry列的表,注意:要使SDE能够认识你创建的要素类,新建的表中有且只能有一个ST_Geometry列,并且最好包含唯一标识的列。
执行下面的sql语句
CREATE TABLE sensitive_areas (area_id integer, name varchar(128),
area_size float, type varchar(10), zone sde.st_geometry);
注意st_geometry前面应添加sde schema 名,否则会报错。
![](http://hi.csdn.net/attachment/201103/30/0_1301482723acJ3.gif)
3. 使用sdelayer命令,将创建好的表注册到SDE中
注册的时候一定要保证下面几点才能成功:
1必须是表的所有者才能注册。
2表中只能有一个ST_Geometry列。
3没有其他用户自定义类型的列。
4必须是简单的集合类型(points, lines, or polygons)。
5Geometry 必须是有效的,否则读取的时候会产生不可预期的错误。
sdelayer 命令参数如下:
sdelayer -o register -l <table,column> -e <entity_mask> [Spatial_Index]
[{-R <SRID> | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]
{[-C NONE] | [-C <row_id_column>[,{SDE|USER}[,<min_ID>]]]}
[-E {empty | xmin,ymin,xmax,ymax}] [-t <storage_type>]
[-S <layer_description_str>] [-q]
[-k <config_keyword>] [-i <service>] [-s <server_name]
[-u <DB_User_name>] [-p <DB_User_password>] [-D <database>]
在命令行中执行下列命令
sdelayer -o register -l sensitive_areas,zone -e a -C area_id,SDE -u data -p sa -t ST_GEOMETRY
-o参数为register -l参数为 表名/ST_Geometry列 -e 几何类型 -C 用户唯一id/SDE 其中SDE表示由sde维护唯一id,使用USER选项,则有用户维护唯一ID -u 注册地用户名 -p 用户密码 -t 数据存储类型
barry~~~~~~~~~~~~~
4. 在catalog中查看,可以看到sensitive_areas已经被注册到sde中,并且图标显示为polygon类型。
![](http://hi.csdn.net/attachment/201103/30/0_1301482762iy6Z.gif)
相关文章推荐
- ArcSDE创建空间数据存储类型为ST_Geometry的要素类
- SQL Server 2008 空间数据存储摘抄(SRID 点 MultiPoint LineString MultiLineString 多边形 MultiPolygon GeometryCollection)
- ORACLE SDO_GEOMETRY 空间数据创建查询
- SQL Server 2008 空间数据存储摘抄(SRID 点 MultiPoint LineString MultiLineString 多边形 MultiPolygon GeometryCollection)
- oracle不同数据类型存储空间的实例比较
- 整型数据类型存储空间大小
- MATLAB 不同颜色空间的图像存储的数据类型
- Oracle矢量数据类型ST_Geometry
- ArcEngine临时数据存储 创建内存工作空间
- 浮点型数据类型存储空间大小
- 在代码中给SQL2008中空间数据类型的存储过程赋值
- 【ArcSDE/Oracle】配置Oracle使SQL可以对ST_GEOMETRY类型操作
- 【转】c++各种数据类型所占存储空间大小
- 03:其他基本数据类型存储空间大小
- 基本数据类型 所占的 存储空间
- 1-2 01:整型数据类型存储空间大小
- Oracle 空间查询, 数据类型为 sdo_geometry
- 1-2 02:浮点型数据类型存储空间大小
- c++各种数据类型所占存储空间大小
- 01:整型数据类型存储空间大小