空间数据库课程设计报告第五章(2)

2020-05-12 08:21

空间数据库课程设计报告 chapter-5

IMP SYSTEM/MANAGER FROMUSER=spatial TOUSER=scott FILE=customers.dmp

在不同的Oracle数据库之间传输数据的另一种机制是可传输的表空间,利用这种机制,可以在两个数据之间传输整个表空间,如程序5-12:

程序5-12

CONNECT SPATIAL/SPATIAL

EXECUTE SDO_UTIL.PREPARE_FOR_TTS('TBS'); CONNECT SYSTEM/MANAGER AS SYSDBA

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('TBS', TRUE); ALTER TABLESPACE TBS READ ONLY; EXIT

导入rans_ts.dmp中的内容:

程序5-13

IMP USERID = \TRANSPORT_TABLESPACE=Y FILE=trans_ts.dmp DATAFILES='sdo_tts.dbf' TABLESPACES=tbs

导入后,应该改变表空间TBS以允许对其进行读/写操作,并执行SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS过程来启用空间索引:

程序5-14

CONNECT SYS/

ALTER TABLESPACE TBS READ WRITE; CONNECT spatial/spatial;

EXEC SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS;

SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS函数重新启用了空间索引,但是如果尾格式不同,空间索引需要通过ALTER INDEX REBUILD命令进行重建:

程序5-15

ALTER INDEX customers_sidx REBUILD;

SDO_MIGRATE程序包中类似于TO_CURRENT的函数可以把空间数据从以前的版本中移植到当前版本中:

程序5-16

EXECUTE SDO_MIGRATE.TO_CURRENT('customers', 'location', 100);

其中第三个参数规定了提交间隔为100,也就是每移植customers表的100行数据就提交一次。

(三) 在SDO_GEOMETRY和WKT/WKB之间转换

SQL/MM为几何体定义了WKT(熟知文本)和WKB(熟知二进制)格式,程序5-20显示了怎样把一个SDO_GEOMETRY对象转换成WKT格式,使用SDO_GEOMETRY数据类型的GET_WKT方法将WKT作为一个字符大对象返回。程序5-21显示了另一个使用SDO_UTIL.TO_WKTGEOMETRY函数得到同样结果的方法:

程序5-20

SELECT a.location.GET_WKT() wkt FROM customers a WHERE id=1;

空间数据库课程设计报告 chapter-5

程序5-21

SELECT SDO_UTIL.TO_WKTGEOMETRY(a.location) wkt FROM customers a WHERE id=1;

(四) 在GML和SDO_GEOMETRY之间转换数据

要将Spatial数据转换成GML2.0(仅支持二维数据类型),可以使用SDO_UTIL.TO_GMLGEOMETRY函数,这个函数使用一个SDO_GEOMETRY类型的输入参数,返回一个GML编码的CLOB形式的文档段。程序5-22说明了如何把客户位置转换为GML文档段:

程序5-22

SELECT TO_CHAR(SDO_UTIL.TO_GMLGEOMETRY(location)) gml_location FROM customers WHERE id=1;

空间数据库课程设计报告 chapter-5

为了将spatial数据转换成GML3.1.1(支持三维数据类型),可以使用SDO_UTIL程序版中的TO_GMLGEOMETRY311函数,程序5-23说明了怎样把一个与轴平行的立方体盒转换成GML311:

程序5-23

SELECT TO_CHAR(

SDO_UTIL.TO_GML311GEOMETRY ( SDO_GEOMETRY (

3008, -- SDO_GTYPE format: D00T. Set to 3008 for a 3-dimensional Solid NULL, -- No coordinate system

NULL, --- No data in SDO_POINT attribute SDO_ELEM_INFO_ARRAY (

1, -- Offset of a Simple solid element 1007, --- Etype for a Simple solid 3 -- Indicates an axis-aligned box ),

SDO_ORDINATE_ARRAY (

0,0,0, --min-corners for box 4,4,4 --min-corners for box ) ) )

) AS GML_GEOMETRY FROM DUAL;

在SDO_UTIL程序包中,可以找到两个函数:FROM_GMLGEOMETRY和FROM_GML311GEOMETRY,它们可以转换GML为SDO_GEOMETRY,程序5-25中列举的SQL语句把程序5-23输出的GMLGEOMETRY转回为SDO_GEOMETRY:

程序5-25

SELECT SDO_UTIL.FROM_GML311GEOMETRY( TO_CLOB(

空间数据库课程设计报告 chapter-5

'

0.0 0.0 0.0 0.0 4.0 0.0 4.0 4.0 0.0 4.0 0.0 0.0 0.0 0.0 0.0

4.0 4.0 4.0 0.0 4.0 4.0 0.0 0.0 4.0 4.0 0.0 4.0 4.0 4.0 4.0

0.0 0.0 0.0 4.0 0.0 0.0 4.0 0.0 4.0 0.0 0.0 4.0 0.0 0.0 0.0

空间数据库课程设计报告 chapter-5

0.0 0.0 0.0 0.0 0.0 4.0 0.0 4.0 4.0 0.0 4.0 0.0 0.0 0.0 0.0

4.0 4.0 4.0 4.0 4.0 0.0 0.0 4.0 0.0 0.0 4.0 4.0 4.0 4.0 4.0

4.0 4.0 4.0 4.0 0.0 4.0 4.0 0.0 0.0 4.0 4.0 0.0 4.0 4.0 4.0 ' )) GEOM FROM DUAL;


空间数据库课程设计报告第五章(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:选修《中外人物传记》字词梳理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: