2012-08-07 89 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