2012-08-07 123 views
0

我有一个快速加载脚本会给我带来问题。我是teradata的新手,不知道日期应该如何正确格式化。日期列目前在excel(csv)中格式化为:“12/31/2011”。Teradata Fastload脚本问题 - 日期格式不正确错误2665

我的脚本如下:

BEGIN LOADING "table" 
    ERRORFILES "errors1", "errors2"; 


SET RECORD VARTEXT ","; 


DEFINE PERD_END_RPT_DT (VARCHAR(20)), <---- date column returning the error 
     RPT_PERD_TYPE_CD (VARCHAR(20)), 
     PERD_NM  (VARCHAR(30)), 
     QTR_NUM   (VARCHAR(2)), 
     YEAR_NUM   (VARCHAR(4)), 
     RPT_PERD_TYPE_NM (VARCHAR(10)), 
     DATA_VLDTN_IND (VARCHAR(1)), 
     EDW_PUBLN_ID  (VARCHAR(18)) 

FILE=C:\pathtofile\file.csv; 

INSERT INTO "table" (PERD_END_RPT_DT, RPT_PERD_TYPE_CD, PERD_NM, QTR_NUM, YEAR_NUM, RPT_PERD_TYPE_NM, 
          DATA_VLDTN_IND, EDW_PUBLN_ID) 
    VALUES (:PERD_END_RPT_DT, :RPT_PERD_TYPE_CD, :PERD_NM, :QTR_NUM, :YEAR_NUM, :RPT_PERD_TYPE_NM, 
          :DATA_VLDTN_IND, :EDW_PUBLN_ID) ; 

END LOADING ; 
LOGOFF ; 

那么我们应该如何日期被格式化,我怎么能修改我的脚本,使其工作?谢谢你的帮助!

+0

什么是基础列PERD_END_RPT_TD的数据类型?单凭长度来判断,我认为是TIMESTAMP。 – 2012-08-07 21:38:32

+0

此外,该字段中传入数据的格式是什么:PERD_END_RPRT_DT? – 2012-08-07 22:48:53

+0

传入格式为“9/30/2011”或“12/1/2011”。这是Teradata数据库中的日期格式。 – tarheels058 2012-08-08 13:11:53

回答

0

试试这个:

BEGIN LOADING "table" 
    ERRORFILES "errors1", "errors2"; 


SET RECORD VARTEXT ","; 


DEFINE PERD_END_RPT_DT (VARCHAR(20)), -- date column returning the error 
     RPT_PERD_TYPE_CD (VARCHAR(20)), 
     PERD_NM   (VARCHAR(30)), 
     QTR_NUM   (VARCHAR(2)), 
     YEAR_NUM   (VARCHAR(4)), 
     RPT_PERD_TYPE_NM (VARCHAR(10)), 
     DATA_VLDTN_IND (VARCHAR(1)), 
     EDW_PUBLN_ID  (VARCHAR(18)) 

FILE=C:\pathtofile\file.csv; 

INSERT INTO "table" (PERD_END_RPT_DT, RPT_PERD_TYPE_CD, PERD_NM, QTR_NUM, YEAR_NUM, RPT_PERD_TYPE_NM, DATA_VLDTN_IND, EDW_PUBLN_ID) 
    VALUES (CAST(:PERD_END_RPT_DT AS DATE FORMAT 'mm/dd/yyyy') -- Changed here 
      , :RPT_PERD_TYPE_CD 
      , :PERD_NM 
      , :QTR_NUM' 
      , :YEAR_NUM 
      , :RPT_PERD_TYPE_NM 
      , :DATA_VLDTN_IND 
      , :EDW_PUBLN_ID) ; 

END LOADING ; 
LOGOFF ; 
+0

Fastload不允许在INSERT中使用表达式我正在制作一个multiload脚本来试试这个,我发现了另一个选项 – tarheels058 2012-08-08 15:42:41

+0

忘记了这一点我测试了转换的SQL,但不测试FastLoad脚本(生锈的我的FastLoad脚本) – 2012-08-08 16:14:24

+0

我将不得不模拟一些东西,我不会经常编写FastLoad脚本,以便知道它将如何工作。MultiLoad确实提供了更多的灵活性,但是为了加快速度。 – 2012-08-08 17:57:30