文档解释
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.重新尝试程序调用。