我无法通过bteq导入数据插入null变量

时间:2016-08-03 21:26:18

标签: unix teradata

我试图通过bteq导入数据将数据导入teradata,但我不能,因为我有这个问题:

  

*失败2621 LT_CDG_UNICO.NRO_VUELO_的格式或数据中的字符不正确    REF。                   声明#1,信息= 0    * 警告:数据不足。

我试图导入:

  

LA; 100; NULL; NULL; 2016年1月1日; 2050年1月1日

我创建这个bteq导入这个:

bteq << CARGA_CDG_UNICO > ${FILE_LOG} 2> ERROR_${FCH_HRA}.LOG
.LOGON ${SERVER}/${USER},${PASS};
.IMPORT VARTEXT ';' FILE='${FILE2}';
.REPEAT *

 USING CDG_OPE(VARCHAR(20)), NRO_VLO(VARCHAR(20)), CDG_OPE_REF(VARCHAR(20)),NRO_VLO_REF(VARCHAR(20)), FCH_INI(VARCHAR(20)), FCH_FIN(VARCHAR(20))
 INSERT INTO ${DBTB}  (CDG_OPERADOR,NRO_VUELO,CDG_OPERADOR_REF,NRO_VUELO_REF,FCH_INI_VIGENCIA,FCH_FIN_ VIGENCIA) values  (:CDG_OPE,:NRO_VLO,:CDG_OPE_REF,:NRO_VLO_REF,:FCH_INI,:FCH_FIN);

.IF ERRORCODE <> 0 THEN .QUIT ERRORCODE;
.LOGOFF;
.QUIT 0;

 CARGA_CDG_UNICO
 }

1 个答案:

答案 0 :(得分:1)

输入文件中的null被视为实际值,您的目标可能是数字列,因此转换字符串null失败。

您需要申请NULLIF,例如

NULLIF(CDG_OPERADOR_REF, 'null')