文档解释
ORA-04042: procedure, function, package, or package body does not exist
Cause: Attempt to access a procedure, function, package, or package body that does not exist.
Action: Make sure the name is correct.
ORA-04042 表示数据库中的调用对象不存在。
官方解释
ORA-04042: 所谓 “程序、功能、包或包体不存在!”
ORA-04042代表一个已经存在的存储过程、函数、包,或者包体不存在。造成这个错误的原因可能是:
1.程序或函数没有正确定义;
2.程序或函数在调用时候引入了 .sql 扩展名;
3.调用参数的数量和类型不正确;
4.package body 不存在。
常见案例
一个存储过程调用了另一个存储过程,但是另一个存储过程不存在,此时可能会抛出ORA-4042错误。
正常处理方法及步骤
1.检查定义的程序、函数和包是否存在,以及参数是否正确定义。
2.检查package body是否存在,及是否已经被编译。
3.如果程序或函数存在,则检查参数数量和类型,以及调用时是否添加了.sql 扩展名。
4.如果package body不存在,则重新创建package body或调整package body并重新编译。