I'm trying to load an csv file (delimited by |) to a Teradata table using BTEQ. Unfortunately I'm getting the error Failure 2673 The source parcel length does not match data that was defined. Any thoughts on what could be the cause of these error is appreciated. Let me know if you need more details. Thanks.
Here is the table 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 File
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