[Shp上传至Oracle Spatial]

# [Shp上传至Oracle Spatial](https://www.cnblogs.com/ytwy/p/6873799.html)

1.下载[shp2sdo](http://files.cnblogs.com/files/ytwy/shp2sdo.zip),将shp文件拷贝至shp2sdo相同路径下,打开windows命令窗口,执行:

shp2sdo shp文件名 表名 -i id -s 4326 -d

例如:shp2sdo city tb_city -i id -s 4326 -d

2.打开plsql命令窗口,执行(也可以在sqlplus中执行或在plsql中执行sql语句):

SQL> @路径+表名.sql

例如:@J:\shp\tb_city.sql

3.在windows命令窗口中执行:

sqlldr 用户名/密码@实例名 表名

例如:sqlldr younggis/123456@orcl tb_city

远程连接:sqlldr younggis/123456@192.168.2.154:1521/orcl tb_city

4.在plsql命令窗口,执行如下:

SQL> execute sdo_migrate.to_current('表名','geometry字段名');

例如:execute sdo_migrate.to_current('tb_city','geom');

5.建立空间索引,在plsql命令窗口,执行如下:

SQL> CREATE INDEX 索引名 ON 表名(geometry字段名) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

例如:CREATE INDEX tb_city_index ON tb_city(geom) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

这个函数不仅可以修复维数,还可以修正坐标顺序,当空间查询不正确的时候很有用。

推荐阅读更多精彩内容