oracle 儲存過程之 open 遊標 for with t2 as ()
阿新 • • 發佈:2019-01-26
在專案中見到這樣的儲存過程程式碼:
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 變數。通過這個變數來訪問 物件中的資料。