Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
mbennitt
Contributor II
Contributor II

Dynamic column error on date data type

I'm working on a generic Talend job that will allow us to process hundreds of tables.  The goal is to take the CSV files from S3 and insert the data into each Oracle table.  Since each table can have different columns and different data types this process needs to be completely dynamic.

 

My current process is tS3Get -> tFileInputDelimieted -> tMap -> tOracleOutput

 

The issue occurs in the last component when inserting data into Oracle. I am getting "ORA-01861: literal does not match format string".  I believe the issue occurs when trying to insert into the data field. When looking at the schema for the tOracleOutput I have one column for results, type of Dynamic, and it forces me to pick a type for DB Type which defaults to varchar2 (highlighted in orange).  I believe that it's trying to force a varchar2 into a date field which obviously won't work.  I thought dynamic worked with any and all columns and can flow freely no matter what data types they are.  

 

Things I've tried: 

1) Changing the date format in the tMap to different combinations.

2) Dropping and creating the table in Oracle.  This works but defines every single column as a varchar2 which is not correct.  We have several different data types including date fields that need to maintain their data type.

 

 

 

Labels (3)
2 Replies
Anonymous
Not applicable

Hi,
My question is - why for insert data you use tOracleInput ? and not tOracleOutput.

 

May be check with function isDate :

System.out.println(TalendDate.isDate("2010-02-09 00:00:00","yyyy-MM-dd HH:mm:ss"));

and convert if needed.. maybe it will help you


Thanks

mbennitt
Contributor II
Contributor II
Author

Sorry, I meant tOracleOutput.  I've tried modifying date formats but it seems like its trying to insert all the data as varchar2 which will not work.