1
我試圖使用BTEQ將csv文件(由|分隔)加載到Teradata表。 不幸的是,我收到了錯誤失敗2673源宗地長度與所定義的數據不匹配。任何關於這些錯誤的原因的想法是讚賞的。讓我知道你是否需要更多細節。謝謝。將文件導入到表錯誤:失敗2673
下面是表DDL:
CREATE MULTISET TABLE DATABASE.EMPLOYEE ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
EMP_ID VARCHAR(11) CHARACTER SET LATIN NOT CASESPECIFIC,
FIRST_NAME VARCHAR(30) CHARACTER SET LATIN NOT CASESPECIFIC,
MIDDLE_NAME VARCHAR(30) CHARACTER SET LATIN NOT CASESPECIFIC,
LAST_NAME VARCHAR(30) CHARACTER SET LATIN NOT CASESPECIFIC,
SEX CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS,
BIRTHDATE CHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS,
LOAD_DT TIMESTAMP(6))
PRIMARY INDEX (EMP_ID);
BTEQ SCRIPT:
.LOGON xxxxx/XXXXX,XXXXX
.IMPORT VARTEXT '|' FILE='C:/XXXX/XXXX.csv' , skip = 1;
.QUIET ON
USING
( EMP_ID VARCHAR(11)
,FIRST_NAME VARCHAR(30)
,MIDDLE_NAME VARCHAR(30)
,LAST_NAME VARCHAR(30)
,SEX CHAR(1)
,BIRTHDATE CHAR(10)
,LOAD_DT TIMESTAMP(6)
)
INSERT INTO DATABASE.EMPLOYEE
(EMP_ID
,FIRST_NAME
,MIDDLE_NAME
,LAST_NAME
,SEX
,BIRTHDATE
,LOAD_DT
)
VALUES (
:EMP_ID
,:FIRST_NAME
,:MIDDLE_NAME
,:LAST_NAME
,:SEX
,:BIRTHDATE
,CURRENT_TIMESTAMP
);
.LOGOFF
.QUIT
CSV文件
EMP_ID|FIRST_NAME|MIDDLE_NAME|LAST_NAME|SEX|BIRTHDATE
00011111|Sam|Arthur|Heinz|F|1955-01-01
00022222|Liam||Carter|M|1914-04-11
00033333|Edward|Johnson|Johnson|M|1958-07-13
我已經刪除了在csv文件中沒有匹配的使用部分中的列..但我仍然收到錯誤。 – mysticfalls 2014-09-04 05:59:06
更新:我試着將LOAD_DT更改爲DATE,但它也不起作用。我做了一些測試並添加了另一個也包含日期值的字段。我使用CHAR(10)的第一個(日期)列,仍然存在錯誤。我用VARCHAR(10)秒(日期)列,它的工作原理。關於BTEQ如何轉換文件字符長度的任何想法。謝謝! – mysticfalls 2014-09-04 06:15:12