将NULL转换为空白TPT快速加载

时间:2013-12-12 21:41:14

标签: teradata

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合作

1 个答案:

答案 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