Insert into emp values
(:FNAME ,.......
TPT上面的示例代码工作正常。 我想在加载
时将flatfile中的空值转换为空白insert into emp values ( COALESCE(:Fname,' '),.... -- Throws ERROR
TPT_INFRA:TPT04046:错误:作业脚本文件'tpscript4.txt'的第193行:Adjacen 引用的字符串必须用 连接运算符:'||'。 作业脚本预处理失败。
insert into emp Values ( case when :Fname is null then ' ' else :Fname End,... --Throws Error
Teradata Parallel Transporter版本13.10.00.02 TPT_INFRA:TPT04046:错误:作业脚本文件'tpscript4.txt'的第191行:Adjacen 引用的字符串必须用 连接运算符:'||'。 作业脚本预处理失败。 作业以状态8终止。
使用Case时选择oerator进行快速加载:
TO OPERATOR (UPDATE_OPERATOR[2])
SELECT case when FNAME is null then ' ' else FNAME,LNAME,....
FROM OPERATOR (FILE_READER[2]);
错误: TPT_INFRA:作业脚本文件'tpscript4.txt'第249行或附近的语法错误: TPT_INFRA:在“SELECT”中缺少规则:作业定义主体中的SEMICOL_ 编译因错误而失败。未生成执行计划。 作业脚本编译失败。 作业以状态8终止。
注意:如果在select中的情况下工作正常,
APPLY('insert into emp values ( COALESCE(:Fname,'' ''),....') Worked with Mload
和 选择大小写,当Fname为空时,那么''E FSE结束为Fname,...来自运营商与Fload合作
答案 0 :(得分:0)
您没有指定返回哪个错误,我认为它与单引号有关。您的INSERT可能在APPLY('INSERT ....;')中,您可能会尝试使用两个单引号来获取字符串中的一个引号:
APPLY('insert into emp values ( COALESCE(:Fname,'' ''),....')
或者在SELECT中执行此操作(此处不支持COALESCE):
SELECT
CASE WHEN Fname IS NULL THEN ' ' ELSE Fname END AS Fname,
...
FROM OPERATOR