【问题标题】:Datatype conversion using tdbrow of talend使用 talend 的 tdbrow 进行数据类型转换
【发布时间】:2021-05-06 04:18:50
【问题描述】:

我真的需要你的帮助,我以前使用 tdbsp(存储过程),但现在我需要使用 tdbrow 来执行插入其中一个 oracle 表作为工作流程的一部分。

插入语句中的某些列是整数和日期,这是导致问题的原因并引发错误,如“无效数字”和其他内容等。我能够管理它的字符串部分,但真的麻烦在于 INTEGER 数据类型,如果我缺少成功插入所需的任何引号,你们中的任何人都可以指导我吗?

我将 fileID 获取为 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)

如何专门针对从 JAVA 到 ORACLE 的 INTEGER 和 DATE 数据类型进行处理?

任何帮助或意见将不胜感激,感谢您的宝贵时间!

【问题讨论】:

    标签: java oracle type-conversion talend abstract-data-type


    【解决方案1】:

    您是否可以使用以下内容: tFixedFlow -> tMap -> tDBOutput 在 tFixedFlow 中,使用正确的数据类型创建具有 fileid、dirid、loadid、file_name、file_date、file_size 的模式。将全局变量作为 tFixedFlow 中的值传递。 然后在 tMap 中,您将所有这些字段映射到您的数据库模式。 然后插入到你的DB中,java类型和Oracle类型的映射就没有问题了。

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多