我是靠谱客的博主 无辜发带,最近开发中收集的这篇文章主要介绍DM8数据库使用dmfldr导入导出数据时NULL_MODE参数对NULL字符串/NULL值的处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介:

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值的处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部