0

問題を引き起こしているfastloadスクリプトがあります。私はteradataを初めて使用し、日付を適切にフォーマットする方法がわかりません。日付列は現在、Excel(csv)で「2011年12月31日」としてフォーマットされています。

私のスクリプトは次のとおりです。

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 ;

では、日付をどのようにフォーマットする必要があり、スクリプトを変更して機能させるにはどうすればよいですか?ご協力いただきありがとうございます!

4

1 に答える 1

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 ;
于 2012-08-08T15:21:26.293 に答える