概述
简介:
dmfldr工具可以把指定格式的文本数据导入表中,也可将表的数据导出到指定格式的文本文件中
对NULL处理的参数是null_mode:
载入时NULL字符串是否处理为NULL,载出时空值是否处理为NULL字符串 (默认值FALSE)
第一部分: 测试导入时,对文本中NULL字符串的处理
1.指定null_mode为true
创建测试表test1
drop table if exists test1;
create table test1(a int, b varchar(8));
编辑文件test.txt,存放路径为/opt/data/test.txt,文件内容如下
1|NULLA
2|null
3|NULL
4|normal
创建dmfldr的控制文件/opt/data/test1.ctl,文件内容如下
LOAD DATA INFILE '/opt/data/test.txt' INTO TABLE test1 FIELDS '|' ( a, b )
进入数据库安装目录的bin目录下,使用dmfldr进行数据载入,指定参数null_mode=true(参数值为true, null/NULL值在导入时处理为NULL)
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test1.ctl' null_mode=true
查询test1表的数据,null字符串导入表时当做空处理
select * from test1;
select a, ifnull(b,'此处的值是NULL') as b_new from test1;
2.指定null_mode为false
创建测试表test2
drop table if exists test2;
create table test2(a int, b varchar(8));
创建dmfldr的控制文件/opt/data/test2.ctl,文件内容如下
LOAD DATA INFILE '/opt/data/test.txt' INTO TABLE test2 FIELDS '|' ( a, b )
使用dmfldr进行数据载入,指定参数null_mode=false(参数值为false,null/NULL值在导入时被处理为字符串)
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test2.ctl' null_mode=false
查询test2表的数据,null字符串导入表时当做字符串处理
select * from test2;
select a, ifnull(b,'此处的值是NULL') as b_new from test2;
第二部分: 测试导出时,对表中NULL值的处理
1.指定null_mode为true
创建dmfldr的控制文件/opt/data/test3.ctl,文件内容如下
LOAD DATA INFILE '/opt/data/test_out1.txt' INTO TABLE test1 FIELDS '|' ( a, b )
查看表test1的数据
使用dmfldr进行数据导出,指定参数null_mode=true(ture表示NULL值导出为NULL字符串)
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test3.ctl' NULL_MODE=true mode='out'
查看/opt/data/test_out1.txt内容如下,NULL值导出时为NULL字符串
2. 指定null_mode为false
创建dmfldr的控制文件/opt/data/test4.ctl,文件内容如下
LOAD DATA INFILE '/opt/data/test_out2.txt' INTO TABLE test1 FIELDS '|' ( a, b )
使用dmfldr进行数据导出,指定参数null_mode=false(false表示NULL值导出时处理为空白)
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test4.ctl' NULL_MODE=false mode='out'
查看/opt/data/test_out2.txt内容如下,NULL值导出时为空白
第三部分: 测试导出时,对表中null字符串的处理
创建dmfldr的控制文件/opt/data/test5.ctl,文件内容如下
LOAD DATA INFILE '/opt/data/test_out3.txt' INTO TABLE test2 FIELDS '|' ( a, b )
查看表test2的数据(表中的null/NULL都是字符串)
使用dmfldr进行数据导出,指定参数null_mode=true
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test5.ctl' NULL_MODE=true mode='out'
使用dmfldr进行数据导出,指定参数null_mode=false
./dmfldr userid=SYSDBA/SYSDBA@localhost:5236 control='/opt/data/test5.ctl' NULL_MODE=false mode='out'
查看/opt/data/test_out3.txt内容如下,null/NULL字符串原模原样处理
回顾null_mode参数在导出时表示的意思:空值是否处理为NULL字符串。表中没有空值(NULL),所以按字符串输出
更多资讯请上达梦技术社区了解:https://eco.dameng.com
最后
以上就是无辜发带为你收集整理的DM8数据库使用dmfldr导入导出数据时NULL_MODE参数对NULL字符串/NULL值的处理的全部内容,希望文章能够帮你解决DM8数据库使用dmfldr导入导出数据时NULL_MODE参数对NULL字符串/NULL值的处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复