ORA-30946: XML Schema Evolution warning: temporary tables not cleaned up
Cause: An error occurred after the schema was evolved while cleaning up temporary tables. The schema evolution was successful
Action: If the user needs to remove the temporary tables, use the mapping table to get the temporary table names and drop them.
ORA-30946: XML Schema Evolution warning错误是由ALTER SESSION COMPILE XSL SCHEMA操作引发的,表明临时表未清理。
错误的提示
ORA-30946: XML Schema Evolution warning: temporary tables not cleaned up
错误说明
ORA-30946: XML Schema Evolution warning错误表示在对XML Schema进行演化操作时存在一些临时表没有被清理而引发的警告信息。Oracle在解析XML Schema时会散发很多临时表,他们正常情况下会在完成解析操作时清理,但由于某些原因可能会没有清理,出现此类错误信息。
常见案例
1. 当执行XML Schema更改,例如ALTER SESSION COMPILE XSL SCHEMA,如果清理失败,则可能会出现此错误。
2. 如果你经常使用一个特定的XML Schema xsd文件,并且在操作前,没有指定清理临时表,则可能会出现此错误。
解决方法
1. 使用ALTER SESSION CLEANUP XSL SET CLOBS强制清理临时表。例如:
ALTER SESSION CLEAR XSL CURSORS;
ALTER SESSION CLEAR XSL SCHEMA;
ALTER SESSION CLEAR XSL SET CLOBS;
2. 确保在每次使用XML Schema之前都指定清理临时表,避免出现错误。
3. 如果高并发情况下,可使用Cron任务定期清理临时表,确保XML Schema演化操作执行时,临时表是准备就绪的。