Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从Oracle中的无效包中检索缺少的列或缺少的表?_Sql_Oracle - Fatal编程技术网

Sql 如何从Oracle中的无效包中检索缺少的列或缺少的表?

Sql 如何从Oracle中的无效包中检索缺少的列或缺少的表?,sql,oracle,Sql,Oracle,我的表中有无效的对象,如包或过程,我能否使用sqlplus脚本或sql脚本检索包所需的缺少的表或字段?首先,尝试编译为架构以获得最小的错误集: CONN myuser/mypass@mydb EXEC UTL_RECOMP.recomp_serial(USER); 接下来,您可以获得所有未解决错误的列表: SELECT * FROM user_errors; 现在,这将向您显示对象(包、过程、错误)以及带有错误的行号。例如,您可以将其连接到user_source以获得显示代码行的功能,例如(

我的表中有无效的对象,如包或过程,我能否使用sqlplus脚本或sql脚本检索包所需的缺少的表或字段?

首先,尝试编译为架构以获得最小的错误集:

CONN myuser/mypass@mydb
EXEC UTL_RECOMP.recomp_serial(USER);
接下来,您可以获得所有未解决错误的列表:

SELECT * FROM user_errors;
现在,这将向您显示对象(包、过程、错误)以及带有错误的行号。例如,您可以将其连接到user_source以获得显示代码行的功能,例如(未测试-此处显示只是为了提示):


无效对象上的错误为ORA-00942:表或视图不存在,ORA-00904:字符串:标识符无效。您可能希望编辑文章以包含更新,而不是通过注释发布更新
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;