微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用talend的tdbrow进行数据类型转换

如何解决使用talend的tdbrow进行数据类型转换

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

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

我将 fileID 作为整数获取并将其存储在 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,i_file_size)

如何专门针对从 JAVA 到 ORACLE 的 INTEGER 和 DATE 数据类型处理这个问题?

非常感谢您提供任何帮助或意见,感谢您的时间!

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。