Преобразование типов данных с использованием tdbrow of talend

Мне очень нужна ваша помощь, раньше я использовал tdbsp (сохраненный процесс), но теперь мне нужно использовать tdbrow для выполнения вставки в одну из таблиц оракула как часть рабочего процесса.

Некоторые из столбцов в операторе вставки представляют собой целые числа и дату, что является причиной проблемы и выдает ошибку, такую ​​​​как недопустимое число и другие вещи и т. д. Я могу управлять строковой частью, но на самом деле проблема заключается в типе данных INTEGER , может ли кто-нибудь из вас помочь мне, если мне не хватает какой-либо из необходимых кавычек для успешной вставки?

Я получаю идентификатор файла как целое число и сохраняю его в глобальной переменной строки tjava:

globalMap.put("CFILEID", input_row.FILEID);

Теперь я использую его в компоненте TDBROW:

FILEID,DIRIRD,LOADID хранится как

число в типе данных ORACLE, а FILE_DATE хранится как

ДАТА в ORACLE. Как преобразовать в нужный формат?

 insert into table_file

   (

 fileid, dirid, loadid, file_name, file_date,file_size, 

  )

values

   (" +"\""+

 

 ((Integer)globalMap.get("CFILEID")) +","+ //FILEID
 NULL+","+ (kept it null for testing purpose) //DIRID

 NULL+","+ ///LOADID

 ((String)globalMap.get("CFILE_NAME")) +","+//FILENAME

 to_date(i_file_date,'dd-mon-yyyy hh24:mi:ss'),//FILEDATE ?????

 NULL+","+ //FILESIZE

)

Команда вставки ORACLE выглядит следующим образом:

values (file_seq.nextval,

    l_dirid,

    l_loadid,

    i_file_name,

    to_date(i_file_date,'dd-mon-yyyy hh24:mi:ss'),

    i_file_size)

Как справиться с этим специально для типа данных INTEGER и DATE из JAVA в ORACLE?

Любая помощь или вклад будут полностью оценены, спасибо за ваше время!


person James    schedule 02.02.2021    source источник


Ответы (1)


Не могли бы вы использовать что-то вроде: tFixedFlow -> tMap -> tDBOutput В tFixedFlow создайте схему с идентификатором файла, dirid, loadid, имя_файла, дата_файла, размер_файла с правильным типом данных. Передайте свои глобальные переменные как значения в tFixedFlow. Затем в tMap вы сопоставляете все эти поля со своей схемой БД. Затем вставьте в свою БД, сопоставление между типами java и типами Oracle не будет проблемой.

person Corentin    schedule 04.02.2021