繁体   English   中英

如何从Oracle中的无效包中检索丢失的列或丢失的表?

[英]How to retrieve the missing column or missing table from an invalid package in Oracle?

我的表中有无效的对象,例如包或过程,我是否可以使用sqlplus脚本或sql脚本来检索包所需的丢失的表或字段?

首先,尝试编译为模式以获取最小的错误集:

CONN myuser/mypass@mydb
EXEC UTL_RECOMP.recomp_serial(USER);

接下来,您可以获得所有未解决错误的列表:

SELECT * FROM user_errors;

现在,这将向您显示对象(包,过程,错误)以及带有错误的行号。 例如,您可以将其加入user_source以显示代码行(例如,未经测试-此处仅作为提示):

select e.error_text, s.type, 
       s.name, s.line, e.line
from user_errors e, user_source s
where s.name = e.name
and  s.type = e.type
and  s.line between (e.line-2) and (e.line+2) -- context 
order by s.type, s.name, e.line, s.line;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM