ORA-42040: cannot online redefine table “string”.”string” with column of binary XML type
Cause: An attempt was made to redefine a table with a column of binary XML type.
Action: Do not attempt to online redefine a table with a column of binary XML type.
ORA-42040是一个异常错误,Oracle 在执行 Online Redefine 操作时返回此错误。这意味着无法在线定义该表,且列为 XML 类型时,就会出现该错误。
转换错误: 在在线定义模式无法使用有 binary XML 类型的列。
常见的案例就是在使用 Oracle 11g 时,如果在表中使用了 XML 类型的列,在执行在线重定义时,就会出现 ORA-42040 错误。此错误只会出现在 Oracle 11g 版本中。
1. 尝试使用重组表,创建一个新表,把旧表数据拷贝过去,然后删除旧表,并将新表重命名为旧表。
2. 修改表结构,避免使用 XML 类型字段,这样就可以避免出现 ORA-42040 错误。
3. 使用老版本的数据库,如 Oracle 10g,而不是 Oracle 11g,可以避免出现该错误。