Find Error--Print Customer Order Invoices

58 篇文章 0 订阅
50 篇文章 0 订阅

问题提出:
      近日user在做 Print Customer Order Invoices出现错误,错误信息为:
Error [Oracle Error 06502: PL/SQL: numeric or value error: character string buffer too small] in report method [CUSTOMER_ORDER_COLL_IVC_RPI.Report_Collective_Invoice]                    ORA-20105: Report.REPRUNERR

问题分析:
    1) 初步根据错误信息应该是某个栏位的字符串长度超长引起;
    2) 跟踪Customer_Order_Inv_Head_API.Print_Invoices过程,至type_generic_address_api.get_address_form返回值为:
3Ma-203,Shihwa Industrial Complex,1374-2 Jungwang-Dong,Shiheung-cityKYUNGKI-DO 429-854 - KR - KOREA, REPUBLIC OF( 一客户地址 )
    3) 出错错误在address_presentation_api.format_to_line过程内;
    4) 最终的原因在于此过程内的address_rec_      Address_Rec_Type;的记录类型为
TYPE Address_Rec_Type IS RECORD
   (address1       VARCHAR2(100),
    address2       VARCHAR2(100),
    address3       VARCHAR2(100),
    address4       VARCHAR2(100),
    address5       VARCHAR2(100),
    address6       VARCHAR2(100));
    5) 最终答案出来了:若客户地址长度超过100,此处肯定会报错。

问题解决:
    1) 初步的解决方法是地址尽量避免100字符串长度;
    2) 方法一不是最好的方法,因目前系统限定100字符串长度,暂时不修改,后续再视状况修改

问题总结:
    一个小小的地址,也会造成BUG,IFS的客户地址发现的BUG是蛮多的,总感觉这个地方用的不是很放心,比较烦的是2K4地址不能输入回车换行,后续再了解此相关的代码,再来修改,以便使用正常。

PS:
       1)  IFS版本为2K4/好像2K1下地址这块还好用;
       2) 20061101也写过一文,错误类型和地方与此一样,原文地址:
http://blog.csdn.net/foreveryday007/archive/2006/11/01/1360738.aspx

                                                                              by foreveryday007  20080226
                                                                             心有多大,宇宙就有多大。
                                                                             http://blog.csdn.net/foreveryday007

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员),有两个内容你必须去弄清楚。第一个内容是如何成为一个Oracle Applications DBA(Oracle应用程序数据库管理员)。第二个内容是你要搞清楚Oracle应用程序背后的架构体系,也就是说你要明白诸如以下产品的结构体系:Oracle电子商务套件、Oracle 11i数据库、Siebel产品等。 本文首先讲述如何从一个普通的Oracle DBA转变为一个Oracle Applications DBA(Oracle应用程序数据库管理员),接着讲述一些Oracle应用软件架构方面的内容 。 如何成为Oracle应用程序数据库管理员 首先是角色的转变 Oracle Applications DBA(Oracle应用程序数据库管理员)对“普通”的Oracle DBA(Oracle数据库管理员)来说是一个很大的挑战。拿Oracle EBS DBA(Oracle 电子商务套件DBA)来说,不仅需要了解EBS的各个组件、服务,而且还要更主动和其他相关人员接触。 一个Oracle Applications DBA(Oracle应用程序数据库管理员)不仅需要和其他DBA一样去负责managing、 sizing、maintaining和 tuning database这些日常的数据库管理的工作,如果他的Apps database是OLTP系统的话,他还需要监察wait和lock 。Oracle E-Business Suite还有一些特性需要DBA去完成,比如从外部资源里灌数据到Apps database里,或支持开发人员从已有数据中提取数据。 接着工作内容的转变 作为一个Oracle Applications DBA(Oracle应用程序数据库管理员),要想更好的对Oracle Application database做支持,需要仔细记住以下几项。 1.网络上没有什么比较容易简单的文档让你去熟悉Apps DBA,所以我建议去看帮助。 2.在你没有经过多次测试并且得到客户认可的时候不要去打补丁,并且你要确信这个补丁解决了现有的问题,而且没有带来其它新的问题。 3.记住Oracle Applications会有很多索引,定期rebuild index会对性能有好处,当然做这项工作应该在系统的空闲时间。 4.不要为了提高性能而在没有询问oracle Support前试着去增加额外的indexes。如果你一定要去做,那千万记住要有文档作记录,因为在这之后你再打patch的时候它可能会把你做的修改自动复原。 5. 知道怎么样是正确的打patch,先计划打哪个patch,然后取得patch,接着打patch,测试,最后文档记录。 6. 要知道任何时刻数据库都可能会有一些object 是invalid的,你的一些操作也会增加invalid objects,定期检查这些invalid objects的数量,然后定期用utlrp去重新编译,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用SYS运行。在你的DB运行过程中如果碰到错误,就可以先重新编译invalid objects,如果没有解决问题再去递交iTAR(Internet created Technical Assistance Request). 7.能看懂日志。 8.了解Apps database的环境,包括操作系统和DB的,当你对你的工作环境了如指掌后,一切也就变得容易了,那时,你就是一个悠闲的Apps DBA了。 另外,对于APPS DB(应用程序数据库)来说,你可能需要创建或拷贝(克隆)多个生产库以外的数据库,比如测试和开发数据库,当然,需要多少数据库是由你的商业需求所决定的。开发环境数据库是供开发人员进行report,PL/SQL等开发的,这个环境可以在开发人员觉得数据已经不再满足开发需求的时候,当然也可以在这个环境测试补丁(patches)。当然最终使用patch的时候还需要在测试环境做测试,因为测试数据库是和生产数据库环境最接近的。(上面说的克隆cloning是一种将applications layer和database layer完全复制的一种方法。)所以,当你拥有这三个数据库的时候,打patch的步骤是先development database再test database最后才在production database环境应用。 构架应用体系 如果你研究过Oracle Forms,使用过Application Server和Devel

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值