![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 花旗蔘 版主 ![]()
![]() ![]() |
在執行某個複雜的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. */ 於是先依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 |