2016-10-26 105 views
1

,我該如何調用它。當我嘗試執行程序時,我應該在P2參數中加入什麼值。或者我可以通過常規方式調用ref光標來查看結果集?或者我還有其他一些安排。希望得到幫助在創建過程後返回oracle中ref遊標的結果

create or replace procedure ref_test 
( 
p1 in table1.col1%type 
,p2 out sys_refcursor 
) 
as 
begin 
open p2 for 
select * from table1 
where col1 = p1; 
end; 
/
+0

既然你在評論中提到你需要從Java調用這個[this is related](http://stackoverflow.com/q/19421355/266304),並且[so is this](http:// stackoverflow.com/q/21913471/266304)。不知道他們算作確切的重複,但。我確定在那裏有一個地方。在您的問題中提供這些信息會很有幫助。 –

回答

0

你可以這樣調用它:

declare 
    vCur sys_REFCURSOR; 
    vVar table1%ROWTYPE; 
begin 
    ref_test(1, vCur); 
    loop 
     fetch vCur into vVar; 
     exit when vCur%NOTFOUND; 
     dbms_output.put_line(vVar.col1 || ' - ' || vVar.col2); 
    end loop; 
end; 

不過,我會建議明確列出,而不是使用*領域。

+0

嗨aleksej,我正在做這個程序的報告目的和refcursor的輸出將直接從過程調用java。我可以聲明匿名塊進行測試。任何其他建議? sql將會加入5-6個表 – Ronnie710

相關問題