dmfldr (DM Fast Loader)是 DM 提供的快速数据装载命令行工具。dmfldr  工具能够把按照一定格式排序的文本数据以简 单、快速、高效的方式载入到DM 数据库中,或把DM 数据库中的数据按照一定格式写入文本文件。

达梦数据库的快速数据装载命令行工具dmfldr_数据



控制文件control 是启动dmfldr 必须的要指定的参数,用于指定数据文件中数据的格式,在数据载入时,dmfldr 根据控制文件指定的dmfldr 会根据控件文件指定的格式来解析数据文件。在导出数据时,dmfldr 会根据控件文件指定的列分隔符、行分隔符等生成数据文件。

达梦数据库的快速数据装载命令行工具dmfldr_字段_02

案例1:

1 、编辑数据文件

[dmdba@localhost fldr]$ cat fldrtest.txt

1,aaaaa,2022-04-21

2,bbbbb,

3,cccc,2021-11-11

2 、编写控制文件

[dmdba@localhost fldr]$ cat fldrtest.ctl

LOAD DATA

INFILE '/dm8/fldr/fldrtest.txt'

INTO TABLE TEST.FLDRTEST

FIELDS ','

3 、创建表

SQL> create table test.fldrtest(id int, name varchar(20), bir date);

4 、快速加载数据

[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123 control='/dm8/fldr/fldrtest.ctl'

[dmdba@localhost bin]$ ./dmfldr sysdba/dameng123

control=\'/dm8/fldr/fldrtest.ctl\'

案例2 :大字段导入、导出

1 、建立有大字段的表

create table test.dtoutput(c1 int, c2 blob, c3 clob);

insert  into  test.dtoutput  values(1,0XAB1211032DE,'THIS   IS  A  dmfldr test');

insert into test.dtoutput

values(2,0XAB1211032DE,'werwerwr3cdsRWR');

insert into test.dtoutput

values(3,0XAB1211032DE,'REWRWRWCVDHGH');

COMMIT;

select * from test.dtoutput;

达梦数据库的快速数据装载命令行工具dmfldr_数据_03

2 、创建控制文件

[dmdba@localhost fldr]$ cat dtfldr.ctl

LOAD DATA

INFILE '/dm8/fldr/dtfldr.txt'

INTO TABLE TEST.DTOUTPUT

FIELDS '|'

(C1,

C2,

C3)

3 、大字段导出

[dmdba@localhost bin]$ ./dmfldr  sysdba/dameng123 control=\'/dm8/fldr/dtfldr.ctl\'  mode=\'out\'

4 、大字段导入--创建带大字段的表

create table test.dtinput(c1 int, c2 blob, c3 clob);

5 、大字段导入--创建控制文件

[dmdba@localhost fldr]$ cat dtfldr.ctl

LOAD DATA

INFILE '/dm8/fldr/dtfldr.txt'

INTO TABLE TEST.DTINPUT

FIELDS ' |'

(C1,

C2,

C3)

6 、大字段导入

[dmdba@localhost bin]$ ./dmfldr   sysdba/dameng123

control=\'/dm8/fldr/dtfldr.ctl\' lob_directory=\'/dm8/fldr\'    mode=\'in\'

错误数据文件写入

[dmdba@localhost            bin]$            ./dmfldr            sysdba/dameng123

control=\'/dm8/fldr/dtfldr.ctl\'                           lob_directory=\'/dm8/fldr\'

badfile=\'/dm8/fldr/test.bad\'

案例3:

1 、创建数据文件

[dmdba@localhost fldr]$ cat test2.txt

ID,NAME

1,AAAA

2,BBBB

3

4,dddddd

2 、创建表

create table test.t50(id int, name varchar(20));

3 、创建控制文件

[dmdba@localhost fldr]$ cat test2.ctl

options(

skip=1

)

LOAD DATA

INFILE '/dm8/fldr/test2.txt'

INTO TABLE TEST.T50

FIELDS ','

4 、加载数据

[​​dmdba@localhost​​ bin]$ ./dmfldr sysdba/dameng123 control=\'/dm8/fldr/test2.ctl\' badfile=\'/dm8/fldr/test2.bad\'

dmfldr  的使用存在以下一些限制:

Ø 不支持向临时表、外部表装载数据

Ø 不支持向系统表装载数据

Ø 不支持向带有位图索引的表装载数据

Ø 不支持向带有函数索引的表装载数据

Ø 不支持向带有全文索引的表装载数据

Ø 不支持向带有全局索引的表装载数据

Ø 不支持向代理装载数据


dmfldr  装载时,对约束进行检查,对各种约束的处理机制如下表所示:

达梦数据库的快速数据装载命令行工具dmfldr_控制文件_04