今天在使用oracle過程中遇到一個奇怪的問題
相同的查詢語句,一種采用綁定參數(shù)方式查詢,一種采用寫死的sql語句執(zhí)行,執(zhí)行結果不一致

select t.*, c.CP_NAME as CP_NAME
  
from (select *
          
from (select row_.*, rownum rownum_
                  
from (select *
                          
from (select *
                                  
from sp_biz_code_order order by order_id)
                         start 
with PARENT_ID = 0
                        connect 
by PRIOR ORDER_ID = PARENT_ID) row_
                 
where rownum <= :1)
         
where rownum_ >:2) t,
       sp_biz_contentprovider c
 
where t.CPID = c.CP_ID(+)
 
order by rownum_

當將:1 和:2處的參數(shù)寫死后(80:100)執(zhí)行得到的結果和綁定參數(shù)下查詢的結果完全不一致
查看執(zhí)行計劃發(fā)現(xiàn)兩者的執(zhí)行計劃有很多不一樣的地方

問題解決方式較為簡單
將ibatis的內(nèi)聯(lián)參數(shù)改為外聯(lián)參數(shù)即可,問題的根源待咨詢oracle后再做解答