PL/SQL 编译失败,没有错误消息

Posted

技术标签:

【中文标题】PL/SQL 编译失败,没有错误消息【英文标题】:PL/SQL compilation fails with no error message 【发布时间】:2008-11-12 04:36:47 【问题描述】:

我在 Oracle 9.2.0.5.0 实例上安装的 APEX 是梨形的,所有包都无效。

我已尝试使用 DBMS_UTILITY.compile_schema 重新编译所有内容,但所有包仍然无效。所以,尝试重新编译单个包,

SQL> ALTER PACKAGE FLOWS_020000.WWV_FLOW_QUERY COMPILE BODY;

Warning: Package Body altered with compilation errors.

SQL> show err
No errors.
SQL> 
SQL> ALTER PACKAGE FLOWS_020000.WWV_FLOW_QUERY COMPILE;

Warning: Package altered with compilation errors.

SQL> show err
No errors.
SQL> 

alter 日志中没有任何内容..

我怎样才能找到错误所在? “show err”不应该给我吗?

【问题讨论】:

【参考方案1】:

我知道这个答案有点晚了,但只是想让你知道你也可以使用:

ALTER PACKAGE your_package_name_here COMPILE PACKAGE;

ALTER PACKAGE your_package_name_here COMPILE BODY;

如果显示警告,您可以使用以下脚本检查错误及其所在的行:

-- this shows the errors within the package itself

SHOW ERRORS PACKAGE your_package_name_here;

-- this shows the errors within the package body

SHOW ERRORS PACKAGE BODY your_package_name_here;

【讨论】:

这是最好的答案。【参考方案2】:

连接为 FLOWS_020000 并继续:

SELECT *
FROM   ALL_ERRORS
WHERE  OWNER = USER;

或者 conn 作为 SYSTEM 然后去

SELECT *
FROM   ALL_ERRORS
WHERE  OWNER = 'FLOWS_020000';

【讨论】:

【参考方案3】:

在放弃这个问题几个月后,我又回来解决了这个问题。

我试图编译的包已经被打包。显然,您在编译打包的包时,必须以包所有者的身份登录。

我怀疑这里也存在一个错误,因为一些更深入的调查显示,当编译时不是以所有者身份,服务器进程实际上内存不足并死亡,但以包所有者身份登录允许编译对象没有问题。

【讨论】:

【参考方案4】:

试试

SHOW ERRORS PACKAGE BODY FLOWS_020000.WWV_FLOW_QUERY

【讨论】:

【参考方案5】:
SHOW ERRORS PACKAGE FLOWS_020000.WWV_FLOW_QUERY

【讨论】:

【参考方案6】:

我今天遇到了同样的问题。我发现我在做(作为 XXX):

alter package XXX.my_package compile body;

它会出错,然后show err 实际上不会显示任何错误。

删除“XXX”。让我看到错误。

【讨论】:

以上是关于PL/SQL 编译失败,没有错误消息的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 过程编译错误

声明变量的 PL/SQL 编译错误

PL/SQL 编译错误

更新期间PL/SQL编译错误

错误:PL/SQL:编译单元分析已终止?

编译过程时 PL/SQL 工具包 Web 应用程序错误