在使用OracleSpatial时,不免需要将shpfile导入,本人使用shp2sdo.exe和oracle内置工具(sqlplus和sqlldr)来完成,使用熟了还比较方便,主要是手动操作四步,本人是在windows中进行的,导入cities.shp。

shp2sdo.exe免费下载

1. 转换数据格式
首先使用shp2sdo.exe转换格式,双击打开如下图:

按提示录入,主要是前两个,要导入的shpfile文件位置和导出文件位置,生成cities.sql、cities.ctl和cities.dat三个文件。

2. 执行SQL
打开cmd,输入sqlplus和参数,执行完exit退出。

 
  
  1. >sqlplus username/passwd@sid 
  2. SQL>@cities.sql 
  3. SQL>exit 

3. 上载数据
接着在第2步后,输入sqlldr和参数,数据会被导入第2步中创建的表中,并在oracle spatial元表(user_sdo_geom_metadata)中添加一条记录。

  1. >sqlldr username/passwd@sid cities

4. 创建空间索引
如同第2步中,打开sqlplus执行创建空间索引SQL语句。

 
  
  1. create index IDX_CITIES on cities(geom) indextype is mdsys.spatial_index; 

P.S. 个人觉得太手动,考虑写个一体化小工具,一步到位提高效率:)