如何解决使用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 举报,一经查实,本站将立刻删除。