【问题标题】:How to show errors in sqlplus如何在 sqlplus 中显示错误
【发布时间】:2014-08-12 20:47:56
【问题描述】:

我想知道如何在 sqlplus 中显示错误。

  1. 尝试编译视图

    alter view SYS.DBA_XML_SCHEMAS compile;

  2. 我有消息:

    ERROR at line 1:
    
    ORA-04063 : view altered with compilation errors.
    
  3. 我试试:

    show errors;

  4. 上面写着:

    No errors
    
  5. 我试试:

    show errors view SYS.DBA_XML_SCHEMAS
    
  6. 上面写着:

    LINE/COL  ERROR
    
    0/0       ORA-00942 : table or view does not exist
    

如果我可以编译错误,则视图必须存在,否则它会告诉我视图不存在。我不知道如何显示视图的编译错误

谢谢

【问题讨论】:

  • 当您尝试SELECT * FROM SYS.DBA_XML_SCHEMAS 时会发生什么?
  • 为什么要编译 SYS 视图?
  • 我知道当 SQL*Plus 在编译视图时抛出错误消息时很少,我将只运行与视图关联的 SQL 并且错误处理消息会更详细(例如抛出的行和错误) .

标签: oracle compiler-errors sqlplus


【解决方案1】:

您可以直接查询dba_errors视图,或者all_errors视图;无论如何,SQL*Plus show errors 命令似乎是一个包装器。

select line, position, attribute, text
from dba_errors
where owner = 'SYS'
and type = 'VIEW'
and name = 'DBA_XML_SCHEMAS'
order by sequence;

但是根据show errors 告诉您的内容,这只会显示相同的内容,错误“ORA-00942:表或视图不存在”从第 0 行位置 0 开始。

这没有多大意义,但内部视图有时是奇怪的东西,尝试重新编译可能不是一个好主意。

您可能需要让您的 DBA 在数据库中运行 utlrp.sql to recompile all invalid objects。与您想在 SYS 模式下做的任何事情一样,应该小心谨慎;并且仅当从视图中选择仍然表明它无效并且重新编译失败时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2020-03-22
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多