SQLDeveloperを使用してOracleストアドプロシージャを呼び出そうとしています。procは、sys_refcursorを使用して結果を出力します。procウィンドウを右クリックすると、Run PL/SQLウィンドウが表示されます。必要なプロシージャを選択すると、すべての入力パラメータなどが作成されます。以下は、sys_refcursorをループして結果を出力するために使用しているコードですが、「v_rec v_Return%rowtype;」でエラーが発生します。ライン :
ORA-06550:6行目9列目:PLS-00320:この式の型の宣言が不完全であるか、形式が正しくありません。ORA-06550:行6、列9:PL / SQL:項目は無視されます
ベンダーコード6550
他のいくつかのWebサイトでループコードを見つけました。これを行う方法のようですが、何を試しても機能しません。別の質問-DBMS_OUTPUT.PUT_LINE('name ='|| v_rec.ADM)で、v_recを正しく参照していますか?つまり、v_rec。"column_name"は正しい方法ですか??
私はOracleにそれほど慣れておらず、SQLplusを使用したことがありません。任意の提案をいただければ幸いです。
DECLARE
P_CAE_SEC_ID_N NUMBER;
P_PAGE_INDEX NUMBER;
P_PAGE_SIZE NUMBER;
v_Return sys_refcursor;
v_rec v_Return%rowtype;
BEGIN
P_CAE_SEC_ID_N := NULL;
P_PAGE_INDEX := 0;
P_PAGE_SIZE := 25;
CAE_FOF_SECURITY_PKG.GET_LIST_FOF_SECURITY(
P_CAE_SEC_ID_N => P_CAE_SEC_ID_N,
P_PAGE_INDEX => P_PAGE_INDEX,
P_PAGE_SIZE => P_PAGE_SIZE,
P_FOF_SEC_REFCUR => v_Return
);
-- Modify the code to output the variable
-- DBMS_OUTPUT.PUT_LINE('P_FOF_SEC_REFCUR = ');
loop
fetch v_Return into v_rec;
exit when v_Return%notfound;
DBMS_OUTPUT.PUT_LINE('name = ' || v_rec.ADM);
end loop;
END;