在使用OracleSpatial时,不免需要将shpfile导入,本人使用shp2sdo.exe和oracle内置工具(sqlplus和sqlldr)来完成,使用熟了还比较方便,主要是手动操作四步,本人是在windows中进行的,导入cities.shp。
1. 转换数据格式
首先使用shp2sdo.exe转换格式,双击打开如下图:
按提示录入,主要是前两个,要导入的shpfile文件位置和导出文件位置,生成cities.sql、cities.ctl和cities.dat三个文件。
2. 执行SQL
打开cmd,输入sqlplus和参数,执行完exit退出。
- >sqlplus username/passwd@sid
- SQL>@cities.sql
- SQL>exit
3. 上载数据
接着在第2步后,输入sqlldr和参数,数据会被导入第2步中创建的表中,并在oracle spatial元表(user_sdo_geom_metadata)中添加一条记录。
- >sqlldr username/passwd@sid cities
4. 创建空间索引
如同第2步中,打开sqlplus执行创建空间索引SQL语句。
- create index IDX_CITIES on cities(geom) indextype is mdsys.spatial_index;
P.S. 个人觉得太手动,考虑写个一体化小工具,一步到位提高效率:)
本文转自 彭金华 51CTO博客,原文链接:http://blog.51cto.com/pengjh/610856