在使用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@sidcities
4. 创建空间索引
如同第2步中,打开sqlplus执行创建空间索引SQL语句。
createindexIDX_CITIESoncities(geom) indextypeismdsys.spatial_index;
P.S. 个人觉得太手动,考虑写个一体化小工具,一步到位提高效率:)