、どのように呼びますか。プロシージャを実行しようとするとき、私はどの値をP2パラメータに入れなければならないでしょうか。または私は定期的に参照カーソルを介して設定された結果を見るために呼び出すことができますか?または私がする必要があるいくつかの他の取り決めがあります。私が代わりに*
を使用するのではなく、明示的にフィールドをリストすることをお勧めしますしかしプロシージャを作成した後に、参照カーソルをoracleに戻します。
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;
:あなたはこのようにそれを呼び出すことができます
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;
/
Javaからこれを呼び出す必要があるというコメントに言及しているので[これは関連しています](http://stackoverflow.com/q/19421355/266304)、[これはこれです](http:// stackoverflow.com/q/21913471/266304)。彼らは正確な重複としてカウントするかどうかは分かりません。私はどこかにそこに1つがあると確信しています。あなたの質問にその情報を与えることは役に立ちましたでしょう。 –