录入预算报错时报错:

分析:这个错误是select into 语句返回多行的结果,但具体在哪?

两种方法查找,trace 或者debug

1.trace

启用调试

获取trace文件

-bash-3.2$ tkprof ERPDEV_ora_7532_RICK.trc $HOME/7532_rick.fchela.txt         



TKPROF: Release 11.2.0.2.0 - Development on Mon Jul 28 11:21:34 2014



Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.








分析trace文件

TKPROF: Release 11.2.0.2.0 - Development on Mon Jul 28 11:39:10 2014



Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.



Trace file: ERPDEV_ora_7532_RICK.trc

Sort options: default



********************************************************************************

count    = number of times OCI procedure was executed

cpu      = cpu time in seconds executing

elapsed  = elapsed time in seconds executing

disk     = number of physical reads of buffers from disk

query    = number of buffers gotten for consistent read

current  = number of buffers gotten in current mode (usually for update)

rows     = number of rows processed by the fetch or execute call

********************************************************************************



SQL ID: ga9j9xk5cy9s0 Plan Hash: 467424113



select /*+ index(idl_sb4$ i_idl_sb41) +*/ piece#,length,piece

from

idl_sb4$ where obj#=:1 and part=:2 and version=:3 order by piece#





call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        8      0.00       0.00          0          0          0           0

Execute      8      0.00       0.01          0          0          0           0

Fetch       22      0.01       0.15         12         66          0          14

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total       38      0.01       0.17         12         66          0          14

...........

内容太多找不到出错点

用debug

分析保存时触发器执行顺序

(1)WHEN-V ALIDA TE-RECORD(将页面上的所有数据提交到数据库,若页面上有重复的数据,则提交

第一次时成功但只是将数据先写到数据库中一类似临时表的地方,在提交第二条重复记录的时候报错,执

行事务回滚,原来执行成功的指令也将被撤消)

(2) PRE-INSER T

(3) ON-INSER T

(4) POST-INSER T

(5) POST-FORMS-COMMIT

(6) PRE-BLOCK(BLOCK 级)

(7) KEY-COMMIT

(8) WHEN-NEW-ITEM-INST ANCE

做界面跟踪

好像是在WHEN-V ALIDA TE-RECORD 里面

备份AU_TOP下的fmb文件以及PA_TOP下的fmx文件

在form触发器里debug

发现不是 WHEN-V ALIDA TE-RECORD 里面

在pre-insert以及on-insert外层定位

FND_MESSAGE.DEBUG('validate');

matrix1.when_validate_record;

FND_MESSAGE.DEBUG('end validate');

FND_MESSAGE.DEBUG('on-insert');

matrix5.validate_resource_level;

FND_MESSAGE.DEBUG('on-insert -1');

matrix.insert_update_record;

FND_MESSAGE.DEBUG('end on-insert');



发现是在on-insert里面的matrix.insert_update_record;报错



做精确定位

if(:matrix_control.p1 is not null) then

--{



l_period_type_code    := null;

fnd_message.debug(' insert_update_record 3');

fnd_message.debug(' :matrix_control.p1 3:'||:matrix_control.p1);

select period_type_code into l_period_type_code

from pa_budget_periods_v where period_name = :matrix_control.p1;

fnd_message.debug(' insert_update_record 4');

找到问题,form被以前开发中修改过,取期间code时没加模块限制,返回多行数据



解决,加模块限制

--modify  by cxy 2014-07-28

select period_type_code into l_period_type_code

from pa_budget_periods_v where period_name = :matrix_control.p1

and period_type_m = 'PA Period';

PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)的更多相关文章

  1. oracle:ORACLE 实际返回的行数超出请求的行数

    写的存储过程,执行后一直报实际返回的行数超出请求的行数的错误. 原因:select prdt_id into prdt_id from.... 两个变量名称相同造成的..哎  第一个变量换成大写..问 ...

  2. LoadXml 加载XML时,报错:“根级别上的数据无效。 行1,位置1“

    ==XML=================================== <?xml version="1.0" encoding="utf-8" ...

  3. MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502

    错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 19 ...

  4. vs报错“以下文件中的行尾不一致,是否将行尾标准化”

    vs报错"以下文件中的行尾不一致,是否将行尾标准化" 分析: 通过读取源文件,发现换行都使用的是"\n"   Windows和Unix不同的标准引起的...即& ...

  5. C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法

    最近在做项目的时候需要操作ftp进行文件的上传下载,但在调用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的时候总 ...

  6. post数据时报错:远程服务器返回错误: (400) 错误的请求。

    网上查了多种方法,有不少说法,报400说是传的数据格式不对,最后的结论确实是数据格式不对. Content_Type为:application/json,配的数据格式有些麻烦,特别数多层,单层还好.例 ...

  7. linux 终端报错 Out of memory: Kill process[PID] [process name] score问题分析

    从Out of memory来看是内存超出了,后面的 Kill process[PID] [process name] score好像和进程有关了,下面我们就一起来看看linux 终端报错 Out o ...

  8. ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。 将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除。

    官方文档:https://msdn.microsoft.com/zh-cn/library/system.obsoleteattribute(v=vs.110).aspx 备注 ObsoleteAtt ...

  9. phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF envir的解决方法

    phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PH ...

随机推荐

  1. JS 判断是否为IP格式

    <html> <head> <title><a href='http://js.zz5u.net'><u>JavaScript</u& ...

  2. JavaScript判断不同平台

    function getPlatformType() { let UA = navigator.userAgent; if(/MicroMessenger/i.test(UA)){ return 'w ...

  3. promise应用及原生实现promise模型

    一.先看一个应用场景 发送一个请求获得用户id, 然后根据所获得的用户id去执行另外处理.当然这里我们完全可以使用回调,即在请求成功之后执行callback; 但是如果又添加需求呢?比如获得用户id之 ...

  4. 利用生产者消费者模型和MQ模型写一个自己的日志系统-并发设计里一定会用到的手段

    一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部 ...

  5. 利用百度接口进行人脸识别并保存人脸jpg文件

    利用百度接口进行人脸识别,根据返回的人脸location用opencv切割保存. # coding : UTF-8 from aip import AipFace import cv2 import ...

  6. 剑指Offer——知识点储备-JVM基础

    剑指Offer--知识点储备-JVM基础 1.java内存与内存溢出 1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页) (1)程序计数器(线程私有) 当前线程执行字节码的信号指示器 ...

  7. ssh用法及命令

    http://blog.csdn.net/pipisorry/article/details/52269785 什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录.如果一个用户从本 ...

  8. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)

    安装过程(如图所示) .Exceptionin thread "main" java.lang.UnsatisfiedLinkError:C:\WINDOWS\system32\j ...

  9. 【移动开发】 Android隐藏输入法软键盘的一些说明

    刚刚在写一个仿微信的Android聊天软件,在编写的过程中,发现一个严重的BUG---当用户点击输入框用软键盘输入文本的时候点击了"返回好友列表"的按钮,返回到好友列表时软键盘无法 ...

  10. Android控制软键盘的弹出和隐藏

    弹出软键盘 前提:必须要有一个可以编辑的控件(EditText),并且当前已经获取焦点 /** * 弹出软键盘 */ public void openKeyboard(View view) { // ...