# [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;
这个函数不仅可以修复维数,还可以修正坐标顺序,当空间查询不正确的时候很有用。
网友评论