我想为用户启用基于版本的重新定义。执行此命令会出现 ORA-33819 异常:
ALTER USER user ENABLE EDITIONS;
我知道有一个选项可以使用参数 Force 启用它
ALTER USER user ENABLE EDITIONS FORCE;
但由于此操作具有追溯性和不可逆性,我宁愿事先了解它失败的原因。有谁知道如何在更改用户之前获取问题列表?
在 Oracle 12.1.0.1.0 上工作
我想为用户启用基于版本的重新定义。执行此命令会出现 ORA-33819 异常:
ALTER USER user ENABLE EDITIONS;
我知道有一个选项可以使用参数 Force 启用它
ALTER USER user ENABLE EDITIONS FORCE;
但由于此操作具有追溯性和不可逆性,我宁愿事先了解它失败的原因。有谁知道如何在更改用户之前获取问题列表?
在 Oracle 12.1.0.1.0 上工作
您可以这样查询:
这将列出用户“USER”引用的对象,这些对象是可编辑的但没有任何版本 - 从而阻止您为“USER”启用 EBR。
1)首先你需要确定没有更多进化的ADT(抽象数据类型):
您必须先重置所有这些类型,然后才能为用户启用基于版本的重新定义。
对 RESET 的限制:如果类型具有任何表依赖项(直接或间接),则不能指定 RESET
链接:ALTER TYPE 声明
2) 如果您有基于 XML 模式的表,则必须将定义移动到另一个模式并根据该定义重新创建表。不过有点奇怪,我原以为这些类型会默认生成“NONEDITIONABLE”?
链接:XML 模式存储
3) 如果您使用的是高级队列,请删除队列和类型并使用 NONEDITIONABLE 属性重新创建类型:
所以,这对我有用