Neca, colega, veja no manual do sqlplus e do pl/sql que SPOOL é um comando nativo DO SQLPLUS, portanto funciona NO SQLPLUS apenas, não tem como vc o usar dentro de um bloco PL/SQL, ok ? Na mesma fonte, porém, vc vai ver que :
a) uma variável criada no sqlplus PODE ser usada/referenciada num bloco pl/sql e depois no sqlplus de novo b) o sqlplus em si não tem IFs, mas aceita comandos SQL de decisão, como CASE ou decode c) o comando @, que starta um script externo, ACEITA argumento dinâmico via & (defined-variable) d) vc PODE misturar blocos PL/SQL com trechos de sintaxe sqlplus no mesmo script, mas em locais separados do script juntando tudo, o teu script .SQL poderia ser + ou - tipo : variable var_teste number; column c_teste new_value vdef_nome_spool BEGIN -- ... rotina que popula var_teste... :var_teste := 1; END; / select case when :var_teste = 0 then 'C:\a.txt' when :var_teste = 1 then 'C:\b.txt' end AS c_teste from dual; spool &vdef_nome_spool select 'teste do spool!' from dual; spool off exit ==> escrevo DE CABEÇA aqui, confira a sintaxe exata, mas é algo muito próximo, ok ? []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "francisco porfirio" <[EMAIL PROTECTED]> escreveu > > Boa tarde a todos... > > Pessoal, eu estou precisando gerar vários arquivos com spool, fiz um script > único que gera todos estes arquivos, o problema é que alguns deles serão > executados apenas caso uma cond. seja satisfeita. > > Ex.: > > declare > var_teste number; > begin > > if(var_teste=0)then > spool a.txt > spool off; > else > spool b.txt > spool off; > end if; > end; > > Seria algo mais ou menos desta forma, alguem tem algum sugestão a fazer? > > -- > Atenciosamente > Francisco Porfirio Ribeiro Neto > > > [As partes desta mensagem que não continham texto foram removidas] >