Oracle堆栈跟踪行号与源代码不匹配!

Oracle堆栈跟踪行号与源代码不匹配!,oracle,exception,plsql,plsqldeveloper,Oracle,Exception,Plsql,Plsqldeveloper,我从Oracle得到一个堆栈跟踪,说第299行有问题。没问题,我查看了相关包中的那一行,并说这是初始化块中的一行,它将变量设置为1,并且不调用引发错误的过程 根据堆栈跟踪中的行号,服务器执行的内容与查看包源时看到的内容似乎不匹配 我是如何看待包的:我使用PL/SQLDeveloper并在对象浏览器中单击包名称上的“查看包”。当我在源代码管理中查看同一个包时,第299行的错误是有意义的(这是对失败的过程的调用) 所以我的问题是:世跆拳道正在进行?为什么当我向Oracle询问pacake源代码时,得

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

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

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

所以我的问题是:世跆拳道正在进行?为什么当我向Oracle询问pacake源代码时,得到的源代码似乎与堆栈跟踪行号不匹配


(oracle 10g)

我认为您已经在PL/SQL developer中打开了该软件包的源代码。再次选择“查看源代码”时,它会激活以前打开的编辑器,而不会重新加载源代码。

因此,结果表明我的脚本引用了
API\u USR。一些\u包
,我以
只读\u USR
的身份登录,
只读\u USR
拥有一个较旧版本的
某些\u包
。当我通过
READONLY\u USR
查看
API\u USR.SOME\u包时,我得到了正确的源代码


face palm

Hmm我关闭了该软件包的所有编辑器(只有一个,在我第一次尝试查看软件包时打开了)。我右键单击对象浏览中的包,并选择“刷新”。然后我右键单击并选择了View。然后我又看到了旧代码!如果这是PL/SQL开发人员的怪癖而不是Oracle,我一点也不会感到惊讶,但我现在说不出来…@Mike Atlas:这是我第一次遇到这种情况,这让我(以及我的开发人员和DBA同事)怀疑我的理智。我想当一个解决方案最终被揭晓时,可能会有很多人脸红!在使用Oracle SQL Developer进行简单查询(10-15行长)时,我通常会得到错误的行号,因此至少您现在已经解决了问题。@Mike Atlas:我认为在Oracle SQL Developer中(也可能在Allround Automation的PL/SQL Developer中,我目前正在使用它)返回的行号相对于查询的第一行。因此,如果您在工作表上有3个查询,它可能会显示从文本文件第30行开始的查询3,但当您仅执行查询3时,Oracle会将其视为从第1行开始(因为它不知道查询在文件中的位置)。