ORA-41699: maximum number of aggregate operations per rule condition exceeded
Cause: An attempt was made to specify more than 5 aggregate operations in a rule condition.
Action: Correct the input an try again.
ORA-41699是由于在查询规则中使用的聚合操作太多造成的Oracle错误,也就是说,查询规则中的某一条件包含太多的聚合操作了。
这常见于应用SELECT时,其中条件以及函数均含有聚集操作,并且把这些聚集操作放在了一条条件表达式中。
1.考虑在使用SELECT时,在查询条件中尽量不要出现以上类型的函数和多个聚合操作,可以尝试将它们分离开,以减少聚合操作的数量。
2.如果不便分离,可以尝试在执行SELECT时设置参数optimizer_aggregate_view_merging为FALSE,这样可以避免在处理聚合操作上的合并,从而减少每条件规则所含的聚合操作数量。
3.另外,也可以尝试调整参数_optimizer_aggr_selectivity与 query_rewrite_integrity参数,减少对SELECT中聚合操作的使用。