达梦7数据加载个人整理实例(原创)
dmfldr(DM Fast Loader)是DM7提供的快速数据装载命令行工具。用户通过使用dmfldr工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。我将在下面分享几个简单实例。
普通文本(加载):
--创建空表
create table test (id int,name varchar(20));
--创建控制文件
vi /opt/test.ctl
LOAD DATA #加载数据
INFILE '/opt/test.txt' #外部文件的路径
INTO TABLE test #加载的表信息(默认是append,insert,repalace)
FIELDS '|' #分隔符号
--创建普通文本
vi test.txt
1,aa
2,bb
3,cc
4,dd
--加载数据 (在linux注意转义)
cd /dm7/bin
./dmfldr sysdba/SYSDBA control=\'/opt/test.ctl\'
如果文本文件第一行是列名:
cd /dm7/bin
./dmfldr sysdba/SYSDBA control=\'\/opt\/test.ctl\' skip=1
#如果给了表的列名和数据,规划列的数据类型时选varchar类型,不指定长度。
大字段文本(导出):
--创建大字段表
drop table test;
create table test(c1 int,c2 blob,c3 clob);
--插入数据
insert into test values(1,0xab121032de,'abcdefg');
insert into test values(2,0xab121032de,'abcdefg');
commit;
--创建控制文件test.ctl,存放路径为/opt/test.ctl,内容如下:
load data
infile '/opt/test.txt'
into table test
fields '|'
--使用dmfldr进行导出数据
cd /dm7/bin
./dmfldr SYSDBA/SYSDBA control=\'/opt/test.ctl\' LOB_DIRECTORY=\'/opt\' mode=\'out\'
在这个例子中,指定了LOB_DIRECTORY,而没有指定LOB_FILE_NAME,导出的大字段数据文件将存放在LOB_DIRECTORY指定的/opt/data目录,文件名为dmfldr.lob。
大字段文本(载入,direct为true时):
--创建大字段表
drop table test;
create table test(c1 int,c2 blob,c3 clob);
--创建控制文件test.ctl,存放路径为/opt/test.ctl,内容如下:
load data
infile '/opt/test.txt'
into table test
fields '|'
--创建数据文件test.txt,存放路径为/opt/test.txt,内容如下:
1|dmfldr.lob:0:5|dmfldr.lob:5:7
2|dmfldr.lob:12:5|dmfldr.lob:17:7
--其中,dmfldr.lob为文本文件,长度大于30字节,存放路径为/opt/
--使用dmfldr进行载入数据
cd /dm7/bin
./dmfldr SYSDBA/SYSDBA control=\'/opt/test.ctl\' LOB_DIRECTORY=\'/opt\'
大字段文本(载入,direct为false时):
--创建大字段表
drop table test;
create table test(c1 int,c2 blob,c3 clob);
--创建控制文件test.ctl,存放路径为/opt/test.ctl,内容如下:
load data
infile '/opt/test.txt'
into table test
fields ','
--创建数据文件test.txt,存放路径为/opt/test.txt,内容如下:
1|0x12d3c8a7|abcdefg
2|0x12a4cbac|hijlkmn
3|0x22d3c8b3|adefhjd
--使用dmfldr进行载入数据
cd /dm7/bin
./dmfldr SYSDBA/SYSDBA control=\'/opt/test.ctl\' direct=false --注意分隔符保持一致
了解更多请参考dm7_dmfldr使用手册。