? 將oracle 10g報表庫遷移到 oracle 11g上發現有個存儲過程編譯時報ora-00979錯誤,經確定是group by 后面加的游標不能使用,后來用metlink查詢發現是11g的一個bug:
ORA-979 bugs on 11.2.0.1 [ID 1085766.1]
????????? 修改時間 23-MAR-2012???? 類型 FAQ???? 狀態 PUBLISHED?????????
Applies to:
Oracle Server - Enterprise Edition - Version: 11.2.0.1.0 to 11.2.0.1.0 - Release: 11.2 to 11.2
Information in this document applies to any platform.
Purpose
The purpose of this document is to have a complete list of ORA-979 bugs with workarounds and their current status on 11.2
Questions and Answers
1. BUG 9411496 - ORA-979 ON 'UNION ALL PUSHED PREDICATE' (Query Optimizer bug)
--- Symptoms ---
When the query has group by and order by, and they use the same attribute and the cursor_sharing is set to a value <> EXACT, the queries fail with ORA-979.
The call stack from the event 979 errorstack is:
... qcuErroer qcuErroep erroep qecgoc qecoby qecpqbcheck qecdrv kkqcttcalo kkqctdrvJPPD kkqjpdctr qksqbApplyToQbc kkqctdrvTD kkqjpddrv kkqdrv kkqctdrvIT apadrv opitca kksFullTypeCheck rpiswu2 kksSetBindType kksfbc ...
--- Changes ---
Following the upgrade to 11.2.
--- Cause ---
Bug 9411496 - ORA-979 ON 'UNION ALL PUSHED PREDICATE'
--- Solution ---
The workarounds are:
1. "_fix_control"="5520732:OFF"
OR
2. optimizer_features_enable = '11.1.0.7'
OR
3."_optimizer_push_pred_cost_based" = false
OR
4."_optimizer_cost_based_transformation" = off
The bug is fixed and there are patches for some platforms.? If the workarounds are not acceptable, a one-off patch for the bug should be requested from Oracle Support.
2. Bug 9478304 "LOOP FAILING WITH ORA-00979 NOT A GROUP BY EXPRESSION" (Query Optimizer bug)
--- Symptoms ---
GROUP BY/ORDER BY in PL/SQL cursor loops fails with ORA-979.
?
1,3,4都是隱含參數,修改必須重啟數據庫,只有2可以在線修改,修改后編譯通過,問題解決。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
