文档解释
ORA-23338: priority or value already in priority group string
Cause: The specified value or priority has already been registered as part of the priority group.
Action: Either specify a different value or priority that not already part of the priority group, or drop the value to the priority group.
ORA-23338错误指示priority参数中包含重复的值。
官方解释
ORA-23338: priority or value already in priority group string
Cause: A PRIORITY or a VALUE attribute was specified more than once in the PRIORITY GROUP or PERCENTILE GROUP.
Action: Make sure that PRIORITY or VALUE values are unique in a priority group.
常见案例
ORA-23338错误通常是由于在PRIORITY GROUP或PERCENTILE GROUP(window组)中重复指定PRIORITY或VALUE属性的结果。如下所示:我们将两次指定值为2的priority属性:
CREATE MATERIALIZED VIEW mview
REFRESH PRIORITY group group1
USING DEFAULT
COALESCE
USING PRIORITY (2, 2);
一般处理方法及步骤
修正ORA-23338错误的最佳方法是将priority group或percentile group(窗口组)中的重复参数替换为其他唯一值,以避免冲突。例如,我们可以编辑以上示例,替换其中的第二个参数,如下所示:
CREATE MATERIALIZED VIEW mview
REFRESH PRIORITY group group1
USING DEFAULT
COALESCE
USING PRIORITY (2, 3);