Hi everyone. I'm trying to load SQL server tables to Teradata14 using OleDB via TD's OleLoad tool. I'm having trouble with attributes defined as VARCHAR(MAX) in SQL server - it seems that this is a LOB data type. Here is the script that OleLoad is generating:
USING CHAR SET UTF8 DEFINE JOB MyJob ( DEFINE SCHEMA MySchema ( ProjectID VARCHAR(36), WBSElement VARCHAR(72), Network INTEGER, Activity SMALLINT, Item SMALLINT, BOM VARCHAR(12), ItemText1 VARCHAR(120), LongText VARCHAR(63999), ReserveNo INTEGER, Material INTEGER, MaterialText VARCHAR(120), "Category" VARCHAR(75), ItmCat VARCHAR(3), Status VARCHAR(24), ResPurcReq VARCHAR(3), PurchReq INTEGER, PO VARCHAR(3), ProfCenter VARCHAR(21), UnloadingPoint VARCHAR(75), OUn VARCHAR(9), Mvt VARCHAR(3), Mvt2 VARCHAR(9), PGp VARCHAR(9), A VARCHAR(3), Vendor VARCHAR(30), StorageLoc VARCHAR(12), Rd VARCHAR(3), TimeUnit VARCHAR(9), GLAccount VARCHAR(18), MaterialGroup VARCHAR(18), QtyUnE FLOAT, UnE VARCHAR(9), RequirementsQty FLOAT, BUn VARCHAR(9), RequirementsDate VARCHAR(30), QtyReceived FLOAT, QtyWithdrawn FLOAT, ShortfallQty FLOAT, DelTime VARCHAR(9), QtyAvailable FLOAT, PriceLCurrency DECIMAL(19,4), Per VARCHAR(3), LtstReDate VARCHAR(30), OperLTO VARCHAR(9), GRT VARCHAR(3), AutoID INTEGER ); DEFINE OPERATOR DDLOperator() TYPE DDL ATTRIBUTES ( VARCHAR PrivateLogName = 'ddl_log', VARCHAR TdpId = @MyTdpId, VARCHAR UserName = @MyUserName, VARCHAR UserPassword = @MyPassword, VARCHAR WorkingDatabase = @MyDatabase ); DEFINE OPERATOR DataConnOper() TYPE DATACONNECTOR PRODUCER SCHEMA MySchema ATTRIBUTES ( VARCHAR AccessModuleName = 'Oledb_Axsmod', VARCHAR AccessModuleInitStr = 'noprompt jobid=1', VARCHAR FileName = 'Untitled', VARCHAR Format = 'Formatted', VARCHAR EnableScan = 'No', VARCHAR IndicatorMode = 'Yes', VARCHAR PrivateLogName = 'producer_log' ); DEFINE OPERATOR MyConsumer() TYPE LOAD SCHEMA MySchema ATTRIBUTES ( VARCHAR DateForm = 'IntegerDate', VARCHAR ErrorTable1 = 'ProjectComponent_errors1', VARCHAR ErrorTable2 = 'ProjectComponent_errors2', VARCHAR LogTable = '"CONOCO_SAP"."ProjectComponent_Log"', VARCHAR PrivateLogName = 'consumer_log', VARCHAR TargetTable = '"ProjectComponent"', VARCHAR TdpId = @MyTdpId, VARCHAR UserName = @MyUserName, VARCHAR UserPassword = @MyPassword, VARCHAR WorkingDatabase = @MyDatabase ); STEP create_the_table ( APPLY ('CREATE MULTISET TABLE "ProjectComponent" ( ProjectID VARCHAR(12) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , WBSElement VARCHAR(24) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Network INTEGER NOT NULL , Activity SMALLINT NOT NULL , Item SMALLINT NOT NULL , BOM VARCHAR(4) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , ItemText1 VARCHAR(40) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , LongText VARCHAR(32000) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , ReserveNo INTEGER , Material INTEGER , MaterialText VARCHAR(40) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , "Category" VARCHAR(25) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , ItmCat CHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Status VARCHAR(8) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , ResPurcReq CHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , PurchReq INTEGER , PO VARCHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , ProfCenter VARCHAR(7) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , UnloadingPoint VARCHAR(25) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , OUn VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Mvt VARCHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Mvt2 CHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , PGp VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , A VARCHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Vendor VARCHAR(10) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , StorageLoc VARCHAR(4) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , Rd VARCHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , TimeUnit VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , GLAccount VARCHAR(6) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , MaterialGroup VARCHAR(6) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , QtyUnE FLOAT , UnE VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , RequirementsQty FLOAT , BUn VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , RequirementsDate VARCHAR(10) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , QtyReceived FLOAT , QtyWithdrawn FLOAT , ShortfallQty FLOAT , DelTime VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , QtyAvailable FLOAT , PriceLCurrency DECIMAL(19,4) NOT NULL , Per CHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , LtstReDate VARCHAR(10) CHARACTER SET UNICODE CASESPECIFIC , OperLTO VARCHAR(3) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , GRT CHAR(1) CHARACTER SET UNICODE NOT NULL CASESPECIFIC , AutoID INTEGER NOT NULL );') TO OPERATOR (DDLOperator); ); STEP load_the_data ( APPLY ('INSERT INTO "ProjectComponent" ( :ProjectID, :WBSElement, :Network, :Activity, :Item, :BOM, :ItemText1, :LongText, :ReserveNo, :Material, :MaterialText, :"Category", :ItmCat, :Status, :ResPurcReq, :PurchReq, :PO, :ProfCenter, :UnloadingPoint, :OUn, :Mvt, :Mvt2, :PGp, :A, :Vendor, :StorageLoc, :Rd, :TimeUnit, :GLAccount, :MaterialGroup, :QtyUnE, :UnE, :RequirementsQty, :BUn, :RequirementsDate, :QtyReceived, :QtyWithdrawn, :ShortfallQty, :DelTime, :QtyAvailable, :PriceLCurrency, :Per, :LtstReDate, :OperLTO, :GRT, :AutoID );') TO OPERATOR (MyConsumer) SELECT * FROM OPERATOR (DataConnOper); ); );
I have tried the following:
1) Setting LongText to VARCHAR(31000) in the schema definition and table definition. This loaded the data, and I could potentially be okay with this BUT - If I set it to anything larger than VARCHAR(31000) i get error 3933 - max possible row length in table is too large. I have another table with 2 attributes of type VARCHAR(MAX), so this won't work.
2) Setting the data type of the attribute in the target table to CLOB. This builds the table and reaches the acquisition phase but results in error 3798 - column or character expression is larger than the max size.
Any help is appreciated.