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 编译失败,没有错误消息的主要内容,如果未能解决你的问题,请参考以下文章