Ошибка сценария Tpt для загрузки типов данных Clob в тераданные
Я пишу свой первый скрипт tpt. Мое требование является основным. Я хочу загрузить таблицу из exadata (которая также имеет типы данных clob и blob) в teradata. Я сталкивался с несколькими сообщениями, говоря, что я могу использовать только оператор вставки sql для загрузки типов объектов clob и blob. Я нашел ниже сценарий:
SET TdpId=
SET UserName=
SET UserPassword=
DEFINE JOB LOADING_LOB_DATA
DESCRIPTION 'LOAD PRODUCT DEFINITION TABLE'
(
DEFINE SCHEMA SOURCE_SCHEMA
DESCRIPTION 'PRODUCT INFORMATION SCHEMA'
(
COL1_ID VARCHAR(38),
COL2_CLOB CLOB(50000) AS DEFERRED BY NAME,
COL3_BLOB BLOB(100000) AS DEFERRED BY NAME
);
DEFINE OPERATOR DDL_OPERATOR()
DESCRIPTION 'DDL Operator'
TYPE DDL
ATTRIBUTES
(
VARCHAR ARRAY ErrorList = ['3706','3803','3807'],
VARCHAR DateForm,
VARCHAR TraceLevel = ‘None’,
VARCHAR PrivateLogName = 'ddllog',
VARCHAR TdpId = @TdpId,
VARCHAR UserName = @UserName,
VARCHAR UserPassword = @UserPassword,
VARCHAR AccountID,
VARCHAR WorkingDatabase
);
DEFINE OPERATOR FILE_READER ()
DESCRIPTION 'DataConnector READER Operator'
TYPE DATACONNECTOR PRODUCER
SCHEMA SOURCE_SCHEMA
ATTRIBUTES
(
VARCHAR TraceLevel = ‘None’,
VARCHAR PrivateLogName = 'dtac_r_log',
VARCHAR DirectoryPath = @SourceDirectoryPath,
VARCHAR FileName = @SourceFileName,
VARCHAR OpenMode = 'Read',
VARCHAR IndicatorMode,
VARCHAR Format = @SourceFileFormat
);
DEFINE OPERATOR SQL_INSERTER ()
DESCRIPTION 'TERADATA INSERTER UTILITY'
TYPE INSERTER
INPUT SCHEMA *
ATTRIBUTES
(
VARCHAR TraceLevel = 'None',
VARCHAR PrivateLogName = 'ins_log',
VARCHAR Tdpid = @TdpId,
VARCHAR UserName = @UserName,
VARCHAR UserPassword = @UserPassword
);
STEP CREATE_SOURCE_TABLE
(
APPLY
('drop table ' || @SourceTable || ' ;'),
('create table ' || @SourceTable || ' , FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL
(
col1_id VARCHAR(38),
col2_clob clob(50000),
col3_blob blob(100000)
) primary index (col1_id);')
TO OPERATOR ( DDL_OPERATOR () );
);
STEP LOADING_DATA_TO_SOURCE_TABLE
(
APPLY
('INSERT INTO ' || @SourceTable || ' values (
:COL1_ID, :COL2_CLOB, :COL3_BLOB);')
TO OPERATOR (SQL_INSERTER [1])
SELECT * FROM OPERATOR (FILE_READER ());
);
);
Может кто-нибудь сказать мне, что здесь используется оператор file_reader() и ddl_operator? Разве я не буду требовать ODBC_OPERATOR сначала здесь, а затем SQL Server? Пожалуйста, помогите мне с этим.