ORA-22345: recompile type string.string before attempting this operation

文档解释

ORA-22345: recompile type string.string before attempting this operation

Cause: An attempt was made to perform an operation which requires the specified datatype to be valid, but the datatype is invalid

Action: Recompile the specified type and retry the operation

ORA-22345: recompile type string.string before attempting this operation是一个框架错误,由PL/SQL或ORACLE服务器发出,表明PL/SQL程序中存在某个不可用的集合类型,它需要再次编译以便可以使用。

官方解释

ORA-22345错误是由于某些PL/SQL数据类型(如数组,记录类型或用户定义类型)尚未正确编译而引起的。 在尝试使用之前,必须先编译任何要使用的PL/SQL类型,并且必须要求调用程序确保类型不再更改,以便PL/SQL代码不需要重新编译。

常见案例

ORA-22345错误通常在处理PL/SQL存储过程和函数时发生,例如,使用CREATE或ALTER DDL语句编辑已存在的PL/SQL存储过程,并向其中添加新的数据类型的成员时。

一般处理方法及步骤

要正确解决此错误,必须使用重新编译PL/SQL特定的类型,如下步骤所示:

1.使用DDL语句,特别是CREATE 或 ALTER检索PL/SQL特定类型的定义

2.使用UTL_REFK.COMPILE_TYPE来重新编译PL/SQL特定类型

3.重新尝试程序调用。

你可能感兴趣的