为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:linux
【CPU】:
【问题描述】*:
1.使用dmfldr命令载出的时候,我在文档上写的可以在控制文件内使用WHEN进行条件过滤,但是我按照文档写的控制文件,没有效果
LOAD DATA
INFILE ‘/home/test/test.txt’
INTO TABLE TEST.TEST_CCL1
WHEN COL1 != ‘zzw’
FIELDS ‘,’
(
COL1,
COL2,
COL3
)
2.使用dmfldr命令载出的时候,其SQL参数到底可以不可以使用呢?我有点看不明白,毕竟所有的ssql都是有空格的
dmfldr userid=SYSDBA/SYSDBA@127.0.0.1:5236 control=‘/home/test/test.ctl’ mode=‘out’ character_code=‘utf-8’ sql='select * from TEST_CCL1 where COL1 =‘zzw’ ’
如下图,这里是两个单引号:
您好,
1.关于第一点,dmfldr只在装载时支持WHEN进行条件过滤,载出时无效。
2.关于第二点,不推荐在命令行中直接使用SQL参数。一个原因是文档提到的空格问题,另一个原因是转义问题,复杂sql转义比较麻烦。推荐直接在控制文件中设置,示例如下:
OPTIONS
(
SQL=‘select * from TEST.TEST_CCL1 where COL1 !=’‘zzw’‘’
)
LOAD DATA
INFILE ‘/ssd1/wt/manual/fldr/test.txt’
INTO TABLE TEST.TEST_CCL1
FIELDS ‘,’
(
COL1,
COL2,
COL3
)