Заявление не допускается во время MLoad (Объединение в TPT) - PullRequest
0 голосов
/ 25 сентября 2019

Я разрабатываю решение, которое объединяет две таблицы. Я пытаюсь объединить две таблицы вместе, используя tpt, но каким-то образом оно заканчивается следующими исключениями

Оператор не разрешен во время MLoad.

Пожалуйста, смотрите следующие фрагменты кода

CREATE SET TABLE testdb.LocalData2 ,FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO,
     MAP = TD_MAP1
     (
      ld_ID INTEGER,
      ld_DATA CLOB(2097088000) CHARACTER SET LATIN,
      ld_DATA2 BLOB(209708800) )
UNIQUE PRIMARY INDEX ( ld_ID );

И таблицы назначения, и исходные таблицы имеют одинаковую схему

Ниже приведен кодфрагмент tpt

TPT

DEFINE JOB "DBQLObjTbl_Hst_1548404108777"
DESCRIPTION 'Data Loading Job'
(
DEFINE SCHEMA SOURCE_SCHEMA
DESCRIPTION 'SCHEMA INFORMATION'
(
ld_ID INTEGER,
ld_DATA CLOB(2097088000) AS DEFERRED BY NAME,
ld_DATA2 BLOB(2097088000) AS DEFERRED BY NAME
);
DEFINE OPERATOR EXPORT_OPERATOR
DESCRIPTION 'TERADATA PARALLEL TRANSPORTER EXPORT Operator'
TYPE SELECTOR
SCHEMA SOURCE_SCHEMA
ATTRIBUTES
(
VARCHAR TdpId = '153.65.126.125',
VARCHAR UserName = 'dbc',
VARCHAR UserPassword = 'dbc',
INTEGER BufferSize = 16775168,
INTEGER MinSessions = 5,
INTEGER MaxSessions = 5,
INTEGER MaxDecimalDigits = 38,
VARCHAR SpoolMode = 'NoSpoolOnly',
VARCHAR SelectStmt = 'SELECT "ld_ID", "ld_DATA", "ld_DATA2" FROM "testdb"."LocalData2";'
);
DEFINE OPERATOR UPDATE_OPERATOR
DESCRIPTION 'TERADATA PARALLEL TRANSPORTER UPDATE Operator'
TYPE UPDATE
SCHEMA SOURCE_SCHEMA
ATTRIBUTES
(
VARCHAR TdpId = '153.65.126.125',
INTEGER BufferSize = 16775168,
INTEGER MinSessions = 5,
INTEGER MaxSessions = 5,
VARCHAR CheckpointRowCount = 'Y',
VARCHAR UserName = 'dbc',
VARCHAR UserPassword = 'dbc',
VARCHAR TargetTable = 'testdb.LocalDataT',
VARCHAR LogTable = 'testdb.LocalData_LT',
VARCHAR ErrorTable1 = 'testdb.LocalData_ET1',
VARCHAR ErrorTable2 = 'testdb.LocalData_ET2',
VARCHAR ARRAY ErrorList = ['3706','3803','3807']
);
STEP DO_SETUP
(
APPLY (' MERGE INTO testdb.LocalDataT as T   
USING testdb.LocalData2 as SSS 
ON T.ld_ID =SSS.ld_ID   
WHEN MATCHED THEN UPDATE 
SET ld_DATA = SSS.ld_DATA  
WHEN NOT MATCHED THEN INSERT  
VALUES (SSS.ld_ID, SSS.ld_DATA, SSS.ld_DATA2);')
TO OPERATOR (UPDATE_OPERATOR [1])
SELECT * FROM OPERATOR (EXPORT_OPERATOR [1]););
);

Пожалуйста, просмотрите следующую ошибку, которую я получаю во время выполнения

Teradata Parallel Transporter Update Operator Version 16.10.00.03
UPDATE_OPERATOR: private log not specified
Teradata Parallel Transporter SQL Selector Operator Version 16.10.00.03
EXPORT_OPERATOR: private log not specified
EXPORT_OPERATOR: connecting sessions
UPDATE_OPERATOR: connecting sessions
UPDATE_OPERATOR: preparing target table(s)
UPDATE_OPERATOR: entering DML Phase
UPDATE_OPERATOR: TPT10508: RDBMS error 3673: Statement not permitted during MLoad.
EXPORT_OPERATOR: disconnecting sessions
UPDATE_OPERATOR: disconnecting sessions
EXPORT_OPERATOR: Total processor time used = '0.1875 Second(s)'
EXPORT_OPERATOR: Start : Thu Sep 26 00:31:43 2019
EXPORT_OPERATOR: End   : Thu Sep 26 00:32:09 2019
UPDATE_OPERATOR: Total processor time used = '0.34375 Second(s)'
UPDATE_OPERATOR: Start : Thu Sep 26 00:31:43 2019
Job step DO_SETUP terminated (status 8)
UPDATE_OPERATOR: End   : Thu Sep 26 00:32:10 2019
Job za186003 terminated (status 8)
Job start: Thu Sep 26 00:31:40 2019
Job end:   Thu Sep 26 00:32:10 2019
...