2011-01-11 83 views
3

我从Oracle那里得到一个堆栈跟踪,说299行存在问题。没问题,我查看了这个包中的那一行,并且说它是初始化块中的一行,它将变量设置为1,并且不会调用引发错误的过程。Oracle堆栈跟踪行号与源代码不匹配!

它看起来像服务器正在执行和当我查看包源时基于堆栈跟踪中的行号所看到的不匹配。

我如何看待软件包:我使用了PL/SQL Developer,并在对象浏览器中的软件包名称上单击了“View Pacakge”。当我查看源代码管理中的同一个包时,第299行的错误是有意义的(这是对失败的过程的调用)。

所以我的问题是:跆拳道是怎么回事?为什么当我向Oracle索要源代码时,得到的源代码似乎与堆栈跟踪行号不匹配?

(oracle 10g)

+0

@Mike图集:这是第一次发生在我身上和它使我(和我的同事开发者和DBA)质疑我的理智。我想,当解决方案最终被揭露时,可能会有很多面子。 – FrustratedWithFormsDesigner 2011-01-11 16:39:37

回答

1

所以,事实证明,我的剧本是引用API_USR.SOME_PACKAGE,我被登录为READONLY_USRREADONLY_USR拥有的SOME_PACKAGE旧版本。当我通过READONLY_USR查看API_USR.SOME_PACKAGE时,我得到了正确的源代码。

面掌

+0

在简单地使用Oracle SQL Developer时,我通常会得到错误的行号查询(10-15行),至少你现在已经过去了你的问题。 – 2011-01-11 16:57:39

1

我想你已经得到了在PL/SQL开发者中打开的那个包的来源。当您再次选择查看源代码时,它会激活先前打开的编辑器,而不重新加载源代码。

+0

嗯,我关闭了该软件包的所有编辑器(只有一个,这是我第一次尝试查看软件包时打开的)。我在对象浏览中右键单击包,然后选择“刷新”。然后我右键单击并选择View。然后我再看到旧的代码!我根本不会感到惊讶*如果它是一个PL/SQL Developer怪癖而不是Oracle,但我现在还不能确定...... – FrustratedWithFormsDesigner 2011-01-11 16:21:03