ORA-04062: string of string has been changed
Cause: Attempt to execute a stored procedure to serve an RPC stub which specifies a timestamp or signature that is different from the current timestamp/signature of the procedure.
Action: Recompile the caller in order to pick up the new timestamp.
ORA-04062意味着一个无效的包,函数或触发器的版本已更改。这意味着在执行程序的过程中,有人更改了相关的包、函数或触发器的版本,而当前的执行程序需要调用,但是当前的版本已更改,因此会出现ORA-04062错误。
ORA-4062表明前次调用的对象(如包,函数,触发器)在重新调用之前发生更改。
ORA-04062错误往往发生在视图中,其中用户尝试执行SQL查询,其中视图引用的函数,包或触发器以前调用过,但是提交DML后有人修改了它们。
1.确认是否有人更改了相关的包,函数或触发器的版本。
2.为了解决ORA-04062错误,要么提交改变后新的物理视图,要么恢复早先修改过的包,函数或触发器的版本。
3.如果需要,可以在每个用户会话中,使用INVALIDATE_CHANGED_OBJECTS方法来应用更改,以便在每个会话中都用新的对象替代旧的对象。
4.重新获取一下权限,以便使对象变得可调用。