TPT Selector is consumer operator which has features on available in Stream and Load operators, this can be used to import LOB columns as well.
DEFINE JOB Import_Employee_Data
Description 'Test Inserter script'
(
DEFINE OPERATOR Inserter_operator
TYPE INSERTER
SCHEMA *
ATTRIBUTES
(
VARCHAR TdPid='TDServer',
VARCHAR UserName='tutorial_user',
VARCHAR UserPassWord='tutorial_password',
VARCHAR TargetTable='emp_unformatted',
VARCHAR LogTable='dept_tpt_inserter_log',
VARCHAR DateForm='AnsiDate',
INTEGER MaxSessions=6,
INTEGER MinSessions=3
);
DEFINE SCHEMA Define_Employee_Schema
(
emp_no VARCHAR(11),
ename_name VARCHAR(50),
hire_date VARCHAR(10)
);
DEFINE OPERATOR Producer_File_Detail
TYPE DATACONNECTOR PRODUCER
SCHEMA Define_Employee_Schema
ATTRIBUTES
(
VARCHAR DirectoryPath='/Users/username/Desktop',
VARCHAR FileName='emp_selector_delimited.out',
VARCHAR TextDelimiter='|~|',
VARCHAR Format='Delimited',
VARCHAR OpenMode='Read',
VARCHAR IndicatorMode='N',
VARCHAR DateForm='AnsiDate'
);
APPLY
(
'INSERT INTO tutorial_db.emp_unformatted(emp_no,ename_name,hire_date) VALUES (:emp_no,:ename_name,:hire_date);'
)
TO OPERATOR(Inserter_operator)
SELECT * FROM OPERATOR (Producer_File_Detail);
);
DEFINE JOB Import_Employee_Data
Description 'Test Inserter script'
(
DEFINE OPERATOR Inserter_operator
TYPE INSERTER
SCHEMA *
ATTRIBUTES
(
VARCHAR TdPid='TDServer',
VARCHAR UserName='tutorial_user',
VARCHAR UserPassWord='tutorial_password',
VARCHAR TargetTable='emp_unformatted',
VARCHAR LogTable='dept_tpt_inserter_log',
VARCHAR DateForm='AnsiDate',
INTEGER MaxSessions=6,
INTEGER MinSessions=3
);
DEFINE SCHEMA Define_Employee_Schema
(
emp_no VARCHAR(11),
ename_name CLOB AS DEFERRED BY NAME,
hire_date VARCHAR(10)
);
DEFINE OPERATOR Producer_File_Detail
TYPE DATACONNECTOR PRODUCER
SCHEMA Define_Employee_Schema
ATTRIBUTES
(
VARCHAR DirectoryPath='/Users/username/Desktop',
VARCHAR FileName='emp_selector_delimited_clob.out',
VARCHAR TextDelimiter='|~|',
VARCHAR Format='Delimited',
VARCHAR OpenMode='Read',
VARCHAR IndicatorMode='N',
VARCHAR DateForm='AnsiDate'
);
APPLY
(
'INSERT INTO tutorial_db.emp_formatted_clob(emp_no,ename_name,hire_date) VALUES (:emp_no,:ename_name,:hire_date);'
)
TO OPERATOR(Inserter_operator)
SELECT * FROM OPERATOR (Producer_File_Detail);
);
Points to be Noted:
TPT_INFRA: TPT02638: Error: Conflicting data length for column(2) - ename_name. Source column's data length (64000) Target column's data length (2097088000).
1000262|~|/Users/username/clob_data/clob_data_test_ename_name_pradeep.khatri-123_p1_r1.out|~|1981-06-09 1000294|~|/Users/username/clob_data/clob_data_test_ename_name_pradeep.khatri-123_p1_r2.out|~|1980-12-17
tbuild -f tpt_inserter_delimited.tpt
tbuild -f tpt_inserter_delimited_clob.tpt