3

我从 Oracle 那里得到一个堆栈跟踪,说第 299 行有问题。没问题,我查看了有问题的包中的那一行,并说它是初始化块中的一行,将变量设置为 1,并且没有调用引发错误的过程。

根据堆栈跟踪中的行号,服务器正在执行的内容与我查看包源时看到的内容之间似乎存在不匹配。

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

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

(甲骨文10g)

4

2 回答 2

1

我认为您已经在 PL/SQL 开发人员中打开了该软件包的源代码。当您再次选择查看源代码时,它会激活先前打开的编辑器,而无需重新加载源代码。

于 2011-01-11T16:17:06.893 回答
1

所以事实证明,我的脚本正在引用API_USR.SOME_PACKAGE,并且我以身份登录READONLY_USRREADONLY_USR拥有旧版本的SOME_PACKAGE. 当我API_USR.SOME_PACKAGE通过查看时,READONLY_USR我得到了正确的源代码。

掌心

于 2011-01-11T16:54:02.867 回答