ORA-29553: class in use: string.string
Cause: An attempt was made to modify a Java class that is in use in the current call.
Action: Correct the code in use in this call.
ORA-29553:表示class在使用中。string.string 是一个 系统数据库内置类型,用于储存字符串。
出现通常有两种情况,一是当存储过程调用时数据库对其中一句SQL语句做了预处理,但是没有提交,就去改变这个类型的定义就会出现ORA-29553错误;二是当存储过程被调用时,它起码有一个事务没有提交,而这个可能被调用的类型已经被另外一个没有提交的事务使用了导致。
1. 查找有没有正在被使用的类型:SELECT * FROM v$session WHERE type#=xxx;
2. 结束会话:ALTER SYSTEM KILL SESSION ‘sid,serial#’;
3. 重新定义类型即可。