Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300856
  • 博文数量: 14
  • 博客积分: 2031
  • 博客等级: 大尉
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-30 09:37
文章分类

全部博文(14)

文章存档

2012年(1)

2011年(4)

2009年(6)

2008年(3)

我的朋友

分类: Oracle

2009-08-18 00:36:15

今天调整一个包内存储过程的时候突然发现 用plsql的test调试的时候报出了一个 ora-03117 的错误。
 
到网上查了资料聊聊无几
 
经过自己2个小时的奋战,终于解决了!
 
思路:
 
首先想到的是权限的问题,是不是没有权限呢?后来重新建立了一个简答的存储过称发现局方可以使用test
 
那就奇怪了。按照网上说是oracle的一个bug,打补丁看来是来不及了。只能通过跳过这个bug的方法解决。
 
 
首先我们初步确定是因为这个PKG比较特色引起了调试的BUG,但是看了半天也没看出特殊的地方。
 
于是祭出了本人最最牛的办法:排除法。
 
把PKG里复杂的存储过程全部屏蔽掉。留下一个简单的。果然可以进行test了
 
然后一个一个存储过称恢复,最后终于发现了问题:
 
是有个存储过程的参数使用了自定义的类型。那个自定义的类型是另一个PKG定义的一种数组类型。
 
在声明那里声明的话,就导致无法调试。
 
解决办法:既然不可以声明那么我们就不声明了,直接把PKG里面该存储过程调到最前面去。
 
OK,问题解决。特此记录
 
 
 
 
 
 
 
 
阅读(4155) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~