参照カーソルをループして、その中の各行について、個々のフィールドを出力する必要があります。更新されたバージョンでは、カーソルを別の参照カーソルではなく、ローカルスカラー変数にフェッチする必要があります:
set serveroutput on;
declare
result sys_refcursor;
lsn number; -- guessing the data type
begin
emp.emp360_utils.GET_EMPLOYEEs(222334,result);
loop
fetch result into lsn; -- and other columns if needed
exit when result%notfound;
dbms_output.put_line(lsn);
end loop;
end;
/
lsn
を推測しました は数値ですが、そうでない場合は、それを正しい型として宣言してください。カーソルが複数の列を返す場合は、それらの1つだけを表示している場合でも、それぞれのローカル変数を宣言し、それらすべてをそれらにフェッチする必要があります。
表示したいだけの場合は、代わりにバインド変数を使用してこれを行うことができます(現在のバージョンでチェックインして1.5.0に戻します):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
variable
に注意してください。 コマンド
ではありません declare
で ブロック;これはSQLDeveloperコマンドであり、PL/SQLコマンドではありません。 print
と同様
ただし、どちらもSQL*Plusのドキュメントにのみ記載されています。また、:result
の先頭のコロンにも注意してください ブロック内。これは、ローカルPL/SQL変数ではなくバインド変数であることを示します。