将shp数据导入oracle数据库

将shp数据导入oracle数据库

步骤

  1. 在C盘创建一个test文件夹,把文件放进去:将shp数据导入oracle数据库

  2. 打开cmd,输入:shp2sdo c:\test\nanshanshequ3857 c:\test\nanshanshequ3857 -g geometry -d
    之后test文件夹中会多出“nanshanshequ3857.ctl”和“nanshanshequ3857.sql”两个文件;将shp数据导入oracle数据库

  3. 打开nanshanshequ3857.sql文件,把最下面的语句放到plsql里执行;将shp数据导入oracle数据库

  4. 它会在USER_SDO_GEOM_METADATA表中插入nanshanshequ3857,再输入select t.*,t.rowid from USER_SDO_GEOM_METADATA t 可查看插入结果。

  5. 回到cmd中,按顺序执行
    sqlplus giser/[email protected]

    @c:\test\nanshanshequ3857.sql

    quit

    sqlldr giser/[email protected] c:\test\nanshanshequ3857

    接着到plsql中的Command Window执行下面这句,对表进行升级
    execute sdo_migrate.to_current(‘nanshanshequ3857’);
    建立空间索引,需要注意存入的几何类型是否正确,必须有空间索引geoserver才能成图

    CREATE INDEX INDEX_nanshanshequ3857_SPATIAL ON nanshanshequ3857 (GEOMETRY)INDEXTYPE
    IS MDSYS.SPATIAL_INDEX PARAMETERS(‘LAYER_GTYPE=POLYGON’) NOPARALLEL;

  6. nanshanshequ3857.shp就成功导入oracle, 输入select * from NANSHANSHEQU3857可查看, 可用geoserver发布。

对sdo_geometry类型中的各个参数简单的介绍:

1、SDO_GTYPE:表示要存储的几何类型,如点线面。它是通过NUMBER类型来表达的;
2、SDO_SRID:几何的空间参考坐标系,类型也为NUMBER;
3、SDO_POINT:如果几何类型点类型的话,就是存储点坐标,否则为空。 oracle自定义的SDO_POINT_TYPE类型;
4、SDO_ELEM_INFO:定义要如何理解SDO_ORDINATES中的坐标串的;
5、SDO_ORDINATES:存储实际坐标的,以X、Y以及不同点之间都是逗号隔开。