ORA-39937: Unsupported operation, default token tables used for binary XML data.
Cause: Informational message to describe a failure during transportable containment checking.
Action: Copy default token tables into a new token table set using DBMS_CSX_ADMIN package.
ORA-39937的全称是:ORA-39937: Unsupported operation,default token tables used for binary XML data。
这个错误表明,用于原始二进制XML数据的令牌表尚不支持一项操作,查询可能会出现这常见的错误,因此Oracle数据库引擎会自动加载令牌,系统将把令牌表作为缺省表运行。为了处理这种错误,应重新定义XML操作,并使用包含自定义令牌表的XML元素,来替代缺省令牌表。
本错误提示系统无法识别给定的操作,因此必须使用缺省令牌表。本错误一般发生在下列情况:
– 用户在Oracle数据库中使用XML类型的字段,而此时令牌表尚不支持该类型操作;
– 用户没有完整识别XML元素进行相关操作,而此时也需要使用令牌表来处理;
– 用户查询XML元素时没有完整指定文档类型,而此时也需要使用令牌表处理;
常见案例
ORA-39937错误通常会在以下情况下发生:
1) 当用户试图在存储XML文档的表中查询XML文档元素时,可能会出现这种错误。
2) 当用户尝试使用XML索引时,也可能出现这种错误。
3) 当用户使用XML查询时,也可能出现此错误。
正常处理方法及步骤
1)若用户需要使用自定义令牌表去处理XML文档,则需要重新定义XML操作,以便使用令牌表中的令牌元素,而不是使用XML缺省令牌表。
2)若需要添加自定义令牌表,则可以使用SYS.XMLParser.RegisterGetTokenTables函数。
3)在添加完自定义令牌表之后,需要重新定义XML操作,以下是一个示例:
BEGIN
SYS.XMLParser.RegisterGetTokenTables(, );
EXECUTE IMMEDIATE ‘ALTER SESSION SET EVENTS ”9254 TRACE NAME context forever, LEVEL 1”’;
END;