如何在sqlplus中显示错误

mlw*_*mos 1 oracle compiler-errors sqlplus

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

  1. 尝试编译一个视图

    alter view SYS.DBA_XML_SCHEMAS compile;

  2. 我有消息:

    ERROR at line 1:
    
    ORA-04063 : view altered with compilation errors.
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我尝试:

    show errors;

  4. 它说 :

    No errors
    
    Run Code Online (Sandbox Code Playgroud)
  5. 我尝试:

    show errors view SYS.DBA_XML_SCHEMAS
    
    Run Code Online (Sandbox Code Playgroud)
  6. 它说 :

    LINE/COL  ERROR
    
    0/0       ORA-00942 : table or view does not exist
    
    Run Code Online (Sandbox Code Playgroud)

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

谢谢

Ale*_*ole 5

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

select line, position, attribute, text
from dba_errors
where owner = 'SYS'
and type = 'VIEW'
and name = 'DBA_XML_SCHEMAS'
order by sequence;
Run Code Online (Sandbox Code Playgroud)

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

这没有多大意义,但内部观点有时是奇怪的事情,尝试重新编译它可能不是一个好主意.

您可能需要让DBA运行utlrp.sql以重新编译数据库中的所有无效对象.与您在SYS模式下所做的任何事情一样,这应该谨慎进行; 并且只有从视图中选择仍然表示它无效且重新编译失败.