shapefile数据导入oracle数据库,并且建立空间索引

shapefile数据导入oracle数据库,并且建立空间索引

shapefile数据导入Oracle数据库

导入前:需要shp2sdo.exe小工具,放在Oracle/product/……/bin目录下。
Step1:利用cmd运行,计入shapefile文件所在文件夹位置,执行语句:
[文件夹位置]>shp2sdo [路径][shapefile名称] [数据表名] –s [空间坐标编号] –g[空间信息存放表的名称]
得到sql、ctl及dat三个文件。
例如:
shapefile数据导入oracle数据库,并且建立空间索引
Step2:复制生成sql文件中的SQL语句到SQL编辑器中,执行语句,创建数据表,如下图所示:
shapefile数据导入oracle数据库,并且建立空间索引
主要分四步走:
1.删除数据库中是否和你创建的表名相同的表
2.创建表以及表属性
3.插入元数据
4.创建索引

将生成dat文件数据导入创建的表中

开始的前,修改一下文件编码格式,防止出现数据库编码格式和文件数据格式不一样, 出现乱码
如下图所示:
shapefile数据导入oracle数据库,并且建立空间索引
生成的格式一般没有这个属性:加上保存即可

Step3:在cmd命令中,利用sqlldr.exe工具,导入dat文件中的数据,执行语句:

[文件位置]>sqlldr [数据库名称]/[密码]@[数据库] [数据表名称]
例如:
shapefile数据导入oracle数据库,并且建立空间索引

创建空间索引

执行以下sql语句创建索引:
CREATE INDEX 表名_ID_IDX ON SYSTEM. 表名(索引字段名1, [索引字段名2])
例如:
CREATE INDEX STD_TEST_DM_ID_IDX ON SYSTEM.STD_TEST_DM (ID,
STAN_NAME)