这个分两种情况:
由于存储过程是数据库自身的东西,JAVA只是调用
所以,如果是语法上的错误 sql直接不能执行 , JAVA确实能接收到异常
但是如果语法没有错误, 只是你写的条件错了, sql能执行,只是没有得到你想要的效果, 这个情况, 是判断不了的, 都会视为成功执行
如果 sql = "select from aaa where id > 10" 这直接是语法 错误,肯定报错
但 如果 sql = "update aaa set name = 'aaa' where id='123' "; 没有语法 错误 ,能执行, 只是没有id = 123的数据, 你要改124的,错写成123了, 就修改不了, 但也不会报任何错
1、首先打开PL/SQL Developer软件,新建sql窗口。
2、打开修改oracle存储过程,该存储过程有一个输入参数(pid)跟一个输出参数(name),即通过用户id查询用户名称并将名称返回。
3、调试存储过程,找到刚刚修改的存储过程右击并点击test选项。
4、在打开的窗口内修改id值并点击左上角的倒三角形图标开始调试。按CTRL+N进行单步进入调试,CTRL+O单步调试,CTRL+T退出调试,也可以点击调试工具进行调试。
5、变量查看,在窗口下方可输入变量名称观察变量的变化情况。
6、调试完成后就可以检查调试结果,可以在调试结果中查看错误。
电脑资源的分配是不定时和不确定的。再说了你还要考虑到网络问题等其它因素。如果说存储过程里面大量使用临时表或者是返回一个大表时都很费资源的。存储过程虽不用再次编译,但是你的参数有很多,要经过周转才运行。有时候会卡也说不准的。所以呢存储过程的 *** 作尽量要简单,也不要很长啦。直接分开调整也很快的。在此预祝楼主成功。
ora-936拉链存储过程报错
我们可以判断是arch1无法获得CF锁,而阻塞者 524594 很可能是后台核心进行,以至于被kill后导致实例crash了。
这里需要说明一下的是该机制是这样的:
当进行需要获取CF enqueue时,最大等待时间为900s,超过900s时,将强制kill阻塞进程。通过如下隐含参数控制这个timeout
楼主下面两行
commit transaction
end
应该调换个位置吧 提交事务应该在后面吧
你的过程里就两个更新语句 更新的字段都是balance 估计这个字段记录的是金额
而你的第二个更新里面 balance很有可能是负数 你的约束是不是不能为负数 才报错的
以上就是关于java如何获取存储过程执行过后的提示信息全部的内容,包括:java如何获取存储过程执行过后的提示信息、oracle存储过程提示编译完成但存在错误,如何查看错误、代码连续两次调用存储过程第二次报错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)