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