2012-03-18 17 views
0

データをファイルにスプールするSQLスクリプトがあります。 サンプル既存のSQLスクリプト:SQLスクリプト内のSQLクエリ

whenever sqlerror exit failure rollback 
spool test.txt 
set serveroutput on 
select * from emp; 
spool off 
/

をしかし、私はデータをスプールする前に、このスクリプトのSQLクエリを記述したいと思います。 スプーリングファイルの名前をハードコードしたくないので、テーブルやルックアップからファイル名を取得するにはどうすればよいですか?

私はコードが

var filename varchar2(30); 
select fname into :filename from table where script = 'abcscript'; 
spool :filename 
set serveroutput on 
select * from emp; 
spool off 
/

おかげのようなものになりたいです。

答えて

3
COLUMN spool_file_name NEW_VALUE.spool_file_name NOPRINT 

select fname spool_file_name 
from table where script = 'abcscript'; 

SPOOL &spool_file_name 

SET ECHO ON 

select * from emp ; 

SPOOL OFF 
COLUMN spool_file_name CLEAR