2012-03-18 2 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