我想知道如何在sqlplus中显示错误。
尝试编译视图
alter view SYS.DBA_XML_SCHEMAS compile;
我收到了消息:
ERROR at line 1:
ORA-04063 : view altered with compilation errors.
我试试:
show errors;
它说:
No errors
我试试:
show errors view SYS.DBA_XML_SCHEMAS
它说:
LINE/COL ERROR
0/0 ORA-00942 : table or view does not exist
如果我可以编译错误,视图必须存在或它会告诉我该视图不存在。我不知道如何显示视图的编译错误
谢谢
答案 0 :(得分:5)
您可以直接查询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模式下所做的任何事情一样,这应该谨慎进行;并且只有从视图中选择仍然表示它无效且重新编译失败。