左右連線,oracle11版本中的bug

2021-06-29 02:48:52 字數 1188 閱讀 5414

這的確是個bug,版本oracle版本為11.2.0.2):

當a,b兩個資料集做外關聯「(+),或left join或right join」時,大部分寫法都沒問題,特殊情況碰在一起會有問題。

例:1,2寫法沒問題,3寫法有時有問題:

1.  

如果兩個資料集a,b都是表,外關聯的結果沒問題

2.  

如果兩個資料集a或b是子查詢,但所選的資訊均為表中字段,而非常量,外關聯的結果也沒問題。

3.  

如果兩個資料集a或b是子查詢,但所選的資訊有常量(例郵件中的情況),外關聯的結果有時有問題(資料量大時oracle的執行計畫可能有異常)。

select

*  from

(select

a.it, b.pid

from

(select

poi_pid, '3'

itfrom

ix_poi_flag a

where

a.flag_code in

('110000030000'

)) a,

ix_poi b

where

a.poi_pid(+) = b.pid)

where

pid = 278599;

select

*from

(select

a.it, b.pid

from

(select

poi_pid,

'3'it

from

ix_poi_flag a

where

a.flag_code in

('110000030000'

)) a

right

join

ix_poi b on

a.poi_pid = b.pid)

where

pid = 278599;

解決辦法,可加

hint 」

select 

/*+ no_merge*/

poi_pid, '3'

it」 

強制oracle

先執行子

inline view

檢視,再與其他資料集做關聯即可。

各兄弟組可驗證分析下,再查詢是否存有類似語句~

Oracle 11 客戶端連線。

如果只安裝 oracle11客戶端,連線伺服器的話,服務名可以寫 ip sid 但是如果安裝了 oracle11伺服器的話,程式連線就報 12154錯誤。必須配置 tnsnames.ora 檔案。兩個現象還有 1.用客戶端的sqlplus連線 username password ip sid 也可以...

SPCAMLEditor發布1 1版本

spcamleditor發布1.1版本 新版本有了重大改進 1 新增了caml的智慧型提示功能,大大方便caml的編輯。3 新增了配置選項 tools setting 可以配置在預覽檢視和字段的時候自動儲存修改 終於可以實現字段編輯的預覽啦 spcamleditor可以做什麼?1 檢視和修改shar...

SUSE11 上oracle11匯入資料中文亂碼

原因 資料庫字元編碼與suse11系統編碼不一致 解決辦法 系統nls lang 檢視suse11系統是否有nls lang環境變數,如果沒有,使用root賬號在 etc profile檔案末尾加入 export nls lang american america.zhs16gbk 資料庫字元 檢視...