ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Inbound IF上传csv文件的代码问题

Inbound IF上传csv文件的代码问题

原创 Linux操作系统 作者:ITPUBZJ 时间:2010-11-09 15:24:03 0 删除 编辑

问题描述:

通过Item Inbound程序上传Item csv文件时,上传失败,提示‘Upload OIF failed’。但同一批数据却可以通过EBS Item Upload功能正常上传

原因调查:

Item Inbound程序处理逻辑如下:

1、用户整理要上传的CSV文件-->字符集为中文

2、通过sqlload ctl文件上传至临时In表-->ctl中规定的字符集为中文,而In表字符集为UTF8

3、对In表数据进行验证,验证通过的数据插入临时Out表-->Out表字符集为UTF8

4、根据Out表的数据生成要插入标准接口表的csv文件-->由于没有指定生成文件的字符集,csv文件字符集取默认值UTF8

5、通过sqlload ctl文件将csv文件插入标准接口表-->ctl中规定字符集为中文,标准接口表字符集为UTF8

这个处理流程中4、5之间的字符集转换逻辑为CSV(UTF8)-->Ctl(中文)-->标准接口(UTF8),这将导致字符代码转换错误,使得插入标准接口的(中文)字符发生乱码甚至超过接口表定义的项目长度而报错。

注:EBS Data Upload Function之所以能正常上传是因为:初始化的时候,Oracle Form标准功能已将上传csv文件的字符集转换成了UTF8。

对应方法:

方法一、修改4、5之间ctl文件中规定的字符集,由中文改成UTF8。

方法二、修改4~5之间的处理流程为:程序将Out表的数据直接插入EBS标准接口表。这样就无需根据Out表数据生成csv文件,也无需通过Ctl文件。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24856894/viewspace-677793/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-03

  • 博文量
    7
  • 访问量
    7134