【发布时间】:2019-07-09 20:34:52
【问题描述】:
我正在 Responsys 中执行此查询并解释计划。
这个查询的解释计划运行良好,返回大约 70 行计数数据:
select * from ( Select LOCATION, count(LOCATION) COUNT_LOCATION From TABLE Group By LOCATION Order By COUNT_LOCATION Desc )
但在末尾添加行限制WHERE ROWNUM <= 10子句:
select * from ( Select LOCATION, count(LOCATION) COUNT_LOCATION From TABLE Group By LOCATION Order By COUNT_LOCATION Desc ) WHERE ROWNUM <= 10
解释计划结果中的这个错误:
错误:java.sql.SQLException:ORA-00604:递归 SQL 级别 1 发生错误 ORA-12899:列“ACME_CUST”的值太大。“PLAN_TABLE”。“OPTIONS”(实际:33,最大值:30 ) : 将计划集 statement_id ='ACME_CUST:1550184818627' 解释为 acme_CUST.PLAN_TABLE for select * from (Select LOCATION, count(LOCATION) COUNT_LOCATION From TABLE Group By LOCATION Order By COUNT_LOCATION Desc ) WHERE ROWNUM
我正在寻找的结果只是 LOCATION 的前 10 行数。
【问题讨论】:
-
该错误表明不是您的查询导致错误,而是尝试对该查询执行 EXPLAIN PLAN。您是否明确执行 EXPLAIN PLAN?如果没有,您使用的任何客户端工具似乎都在隐含地这样做,并且可能导致错误。
-
我正在使用电子邮件服务平台 Responsys,它代表我执行 EXPLAIN PLAN。我会将它们作为标签添加到这个问题中。