Hi all,
I am having difficulties loading the DateTime data type with TPT from SQL server into teradata using the UTF-16 char set. I keep getting the 2673 error code '2673 SOURCE PARCEL LENGTH DOES NOT MATCH DATA THAT WAS DEFINED'. When I leave out the DateTimes my script loads fine, it is only when I add a DateTime field that things go sour. Any ideas anyone on how to correctly load DATETIME data type into TIMESTAMP(3)? Exporting the the data to a file with bcp utility and doing a fastload works fine.
this is my script:
USING CHAR SET UTF16
DEFINE JOB TPT_LOAD_Dim_Billing_Document_Type
DESCRIPTION 'ODBC LOAD Dim_Billing_Document_Type TABLE'
(
DEFINE SCHEMA ODBC_Dim_Billing_Document_Type
(
SK_Billing_Document_Type INTEGER,
Billing_Document_Type_Code VARCHAR(100),
Billing_Document_Type_Name VARCHAR(200),
Analytic_Relevence_Indicator VARCHAR(20),
Billing_Document_Group_Code VARCHAR(20),
Record_Source_Timestamp CHAR(46),
Record_Checksum_SCDType1 INTEGER,
Record_Checksum_SCDType2 INTEGER
);
DEFINE OPERATOR DDLOperator()
TYPE DDL
ATTRIBUTES
(
VARCHAR PrivateLogName = 'ddl_log',
VARCHAR TdpId = @MyTdpId,
VARCHAR UserName = @MyUserName,
VARCHAR UserPassword = @MyPassword,
VARCHAR WorkingDatabase = @MyDatabase,
VARCHAR ARRAY ErrorList = ['3807','3803']
);
DEFINE OPERATOR ODBC_Operator
DESCRIPTION 'Teradata Parallel Transporter ODBC Operator'
TYPE ODBC
SCHEMA ODBC_Dim_Billing_Document_Type
ATTRIBUTES
(
VARCHAR PrivateLogName = 'odbc_log',
VARCHAR DSNName = @jobvar_SQL_SERVER_DNS,
VARCHAR UserName = @MyUserName,
VARCHAR UserPassword = @MyPassword,
VARCHAR SelectStmt = 'Select SK_Billing_Document_Type,
Billing_Document_Type_Code,
Billing_Document_Type_Name,
Analytic_Relevence_Indicator,
Billing_Document_Group_Code,
convert(char(23), Record_Source_Timestamp, 121),
Record_Checksum_SCDType1,
Record_Checksum_SCDType2
FROM [WILD_DWH].[DWH].[Dim_Billing_Document_Type];'
);
DEFINE OPERATOR Load_Operator
TYPE LOAD
SCHEMA *
ATTRIBUTES
(
VARCHAR ErrorTable1 = 'Dim_Billing_Document_Type_errors1',
VARCHAR ErrorTable2 = 'Dim_Billing_Document_Type_errors2',
VARCHAR LogTable = '"D0_EU_STG_T"."Dim_Billing_Document_Type_Log"',
VARCHAR PrivateLogName = 'load_log',
VARCHAR TargetTable = '"Dim_Billing_Document_Type"',
VARCHAR TdpId = @MyTdpId,
VARCHAR UserName = @MyUserName,
VARCHAR UserPassword = @MyPassword,
VARCHAR WorkingDatabase = @MyDatabase
);
STEP drop_and_create_the_table
(
APPLY
('DROP TABLE "Dim_Billing_Document_Type_errors1";' ),
('DROP TABLE "Dim_Billing_Document_Type_errors2";' ),
('DROP TABLE "Dim_Billing_Document_Type";' ),
('CREATE MULTISET TABLE "Dim_Billing_Document_Type" ( SK_Billing_Document_Type INTEGER NOT NULL ,
Billing_Document_Type_Code VARCHAR(50) CHARACTER SET UNICODE NOT NULL CASESPECIFIC ,
Billing_Document_Type_Name VARCHAR(100) CHARACTER SET UNICODE CASESPECIFIC ,
Analytic_Relevence_Indicator VARCHAR(10) CHARACTER SET UNICODE CASESPECIFIC ,
Billing_Document_Group_Code VARCHAR(10) CHARACTER SET UNICODE CASESPECIFIC ,
Record_Source_Timestamp TIMESTAMP(3) NOT NULL,
Record_Checksum_SCDType1 INTEGER NOT NULL ,
Record_Checksum_SCDType2 INTEGER NOT NULL
);')
TO OPERATOR (DDLOperator);
);
STEP load_the_data
(
APPLY
('INSERT INTO "Dim_Billing_Document_Type" ( :SK_Billing_Document_Type,
:Billing_Document_Type_Code,
:Billing_Document_Type_Name,
:Analytic_Relevence_Indicator,
:Billing_Document_Group_Code,
:Record_Source_Timestamp,
:Record_Checksum_SCDType1,
:Record_Checksum_SCDType2
);')
TO OPERATOR (Load_Operator)
SELECT
SK_Billing_Document_Type,
Billing_Document_Type_Code,
Billing_Document_Type_Name,
Analytic_Relevence_Indicator,
Billing_Document_Group_Code,
Record_Source_Timestamp,
Record_Checksum_SCDType1,
Record_Checksum_SCDType2
FROM OPERATOR (ODBC_Operator);
);
);
S-