実行するブロックの後のスラッシュ 。それを実行すると、出力がまったく得られません。スラッシュを付けるように変更した場合:
sqlplus -silent [email protected] <<EOF
set serveroutput on
declare
DE_REC_COUNT number(10);
begin
DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/
EOF
次に、次のように表示されます:
0
PL/SQL procedure successfully completed.
SQL * Plusでスラッシュなしの対話型バージョンも示しましたが、表示した出力を表示するには、スラッシュが必要です。
ゼロが必要な場合-これはdbms_output
から来ているようです 匿名ブロックから直接ではなく、プロシージャを呼び出します。後で参照できるシェル変数では、ヒアドキュメントの出力を変数に割り当てることができます。
MY_VAR=`sqlplus -silent [email protected] <<EOF
set serveroutput on
set feedback off
declare
DE_REC_COUNT number(10);
begin
DE_DUP_PROC ('T_MCL_30404_20150317_020','MCL','30404','FT',DE_REC_COUNT);
end;
/
EOF`
printf "Got back MY_VAR as %s\n" ${MY_VAR}
set feedback off
を追加したことに注意してください そのため、PL/SQL procedure successfully completed
は表示されません。 ライン。実行すると、次のように表示されます。
Got back MY_VAR as 0
${MY_VAR}
で必要なことは何でもできます 。ただし、「キャプチャ」の意味によって異なります。