台灣最大程式設計社群網站
線上人數
431
 
會員總數:239929
討論主題:186061
歡迎您免費加入會員
討論區列表 >> Blog精華文章 >> ORA-01762: vopdrv: view query block not in FROM
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
ORA-01762: vopdrv: view query block not in FROM
價值 : 0 QP  點閱數:1382 回應數:0

樓主

花旗蔘 版主
高級專家
10895 129
4223 515
發送站內信

在執行某個複雜的query時(有使用CTE)  報了錯 ORA-01762: vopdrv: view query block not in FROM,而這query 在oracle apex ap 上是可以執行無誤的,但同樣的query sql 在sql developer 執行就報錯ORA-01762,試著找出語法中的問題,無所獲,所以上oracle support 找尋線索,找到此note,文中所述的db版本環境與我的相符,想說應該就是這個了,

Bug 9620994 - Incorrect ora-1762 "vopdrv: view query block not in from" [ID 9620994.8]
 

/*SUMMARY

Description

 Query may report ora-1762 "vopdrv: view query block not in from" and changing CBO parameters the error is not reported.
 
Workaround
 Changing optimizer parameters like (but not limited to) "_eliminate_common_subexpr" = false
might workaround the issue but it is not guaranteed and my have an adverse effect on performance.

*/

於是先依note 所提供的workaround 先在session level試試, 

alter session set "_eliminate_common_subexpr"=false
 

再執行該query sql,仍是報錯。

google一下看有無其它solution,發現有網友跟我是類似的情況,"都有使用CTE",解法就是用傳統的plus notation  (+) 來代替JOIN 的寫法,依網友的例子 是在CTE內部做更改,但我的情況,不論在CTE 內外部都有許多JOIN,而之前類似的寫法也都沒問題,故我認為應只是"某個點"觸發了這個bug,最後我的狀況是 只要更改在 CTE 之外 的某段JOIN即可。
 


本篇文章發表於2013-05-22 14:09
== 簽名檔 ==
Oracle/EBS/MS SQL DBA
--My BLOG
http://itgroup.blueshop.com.tw/benchenBEN/blog
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
[ 變換順序 ]   

回覆
如要回應,請先登入.