shp文件导入达梦数据库

一、确认环境

1、确保达梦数据库已经安装并运行。

2、使用SP_INIT_GEO_SYS(1);启用空间数据工具包GEOGRAPHY SYSTEM
使用SELECT SF_CHECK_GEO_SYS;检查包状态0:未启用;1:已启用;

3、确认dmshp2st和dmfldr工具已经包含在达梦数据库的安装包中,通常这些工具位于数据库的bin目录下,如:C:\dmdbms\bin。

4、确保shp文件是完整的,包括主文件(.shp)、索引文件(.shx)和dBase表(.dbf)。

5、确保shp文件的数据格式与达梦数据库的要求相匹配,特别是空间参考坐标系(SRID)等参数。

二、使用dmshp2st工具转换shp数据

1、在cmd的C:\dmdbms\bin目录下运行dmshp2st命令

dmshp2st shapefile=D:\path\to\your\shapefile table_name=your_table_name srid=4326 auto_overwrite=1
  • shapefile:指定shp文件的路径(无需指定后缀,程序会自动寻找.shp、.shx和.dbf文件)
  • table_name:数据库表名
  • srid:空间参考坐标系
  • auto_overwrite:参数设置为1以允许覆盖同名文

2、执行命令后,dmshp2st会在你设置的shapefile目录下生成四个同名但不同后缀的文件:.sql、.ctl、.dat、.lob。

三、使用dmfldr工具导入数据

1、执行.sql文件新建该表

2、在cmd的C:\dmdbms\bin目录下运行dmfldr命令

dmfldr userid=SYSDBA/SYSDBA@IP:PORT control='path_to_ctl_file/control_file.ctl' CLIENT_LOB=true lob_directory='path_to_lob_files' enable_class_type=true CHARACTER_CODE='utf-8'
  • SYSDBA/SYSDBA@IP:PORT :数据库的用户名、密码和连接信息,达梦默认端口5236
  • control:指定.ctl文件的路径,需带引号
  • CLIENT_LOB:大字段目录是否在本地
  • lob_directory:大字段数据文件临时存放目录
  • enable_class_type:设置为true以支持空间类型数据的导入
  • CHARACTER_CODE:设置字符编码(如utf-8)

四、注意事项 

1、所有路径均不能存在特殊字符及中文,否则ctl的内容会出现乱码

2、可能需要手动修改ctl和sql文件添加模式名,如果修改,三处均需修改

        ctl:

LOAD
INFILE 'C:\Users\admin\temp_workspace\test_data.dat' STR X '0D0A'  
APPEND
    // MYDB默认不存在
    INTO TABLE "MYDB"."TEST_DATA"
    FIELDS TERMINATED BY  '|'  
    (
	"TYPE",
	"NAME",
	"Shape_Leng",
	"Shape_Area",
	"GEOM"
)

        sql:

// MYDB默认不存在
DROP TABLE "MYDB"."TEST_DATA" CASCADE PURGE;

CREATE TABLE "MYDB"."TEST_DATA"(
"TYPE" VARCHAR(6),
"NAME" VARCHAR(60),
"Shape_Leng" VARCHAR(255),
"Shape_Area" VARCHAR(255),
"GEOM" SYSGEO.ST_MULTIPOLYGON check (srid = 4326));

COMMIT;

3、表名、字段名均有对应关系,不要在dmshp2st命令的成果文件中修改相关内容

4、dmshp2st命令中的文件路径shapefile的值不需要带单引号,但dmfldr命令中涉及的路径均需带单引号

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值