1. 程式人生 > >oracle 儲存過程之 open 遊標 for with t2 as ()

oracle 儲存過程之 open 遊標 for with t2 as ()

在專案中見到這樣的儲存過程程式碼:

procedure    procedure_name (out_param  out   cursorType,  out_param2  out   cursorType,  in_param  in   cursorType )

is

     sql  varchar2(3200);

begin

      open out_param for

      with t2  as (select * from table2)    --這裡可以把 t2 看作臨時表,在java中就好像抽取公共的 方法, 

 其實這裡就是抽取    公共的sql ,目的為了優化

     select   * 

     from table1 , t2

end

這裡 out_param 為遊標型別,也就是 open out_param  for    下的  查詢    結果會放在 out_param中,其實是在resultSet中  out_param 作為    當前結果集的遊標,注意,這裡如果是 open  out_param2  for 那麼結果集就會選用  out_param2  來作為當前結果集的遊標,  用java的理解方式: 結果集為一個Map型別 例項物件, 這個例項物件指向 out_param2  變數。通過這個變數來訪問 物件中的資料。