UNIX スクリプトを使用して、データベース リンク経由でストアド プロシージャを開始する SQL コードを実行しています。手順を正常に完了することができますが、示された SPOOL ファイルに DBMS 出力がスプールされません。
UNIX 内の SQL:
set feedback off;
set linesize 500;
set serveroutput on size 1000000;
set serveroutput on format wrapped;
spool $SQLspool;
whenever oserror exit;
whenever sqlerror exit sql.sqlcode;
DECLARE
retcode integer :=0;
BEGIN
owner.procedure@db;
dbms_output.put_line('');
dbms_output.put_line('return code: ' || retcode);
dbms_output.put_line('');
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/
EXIT;
スプールファイルの内容:
return code: 0
ストアド プロシージャ内に多数の DMBS 出力をリストしますが、スプール ファイルには何も書き込まれません。
スプールファイルに出力するにはどうすればよいですか?
IN OUT 変数を使用しようとしましたが、プロシージャに COMMIT が含まれているため、DB リンクを経由しているため、パラメータでエラーが発生します...