Fórum Configurando SPOOL ORACLE #582025
01/06/2017
0
Estou gerando um comando spool para criar um arquivo txt.. Entao esta desta maneira:
1 2 3 4 5 6 7 8 9 | set echo off set feedback off set heading off spool 'C:\\TESTE\\TXT\\testespool.txt' SELECT DISTINCT DWCDCLIE FROM DWATOOA WHERE DWFLATTI = 0; spool off |
O arquivo gera normal, porem apresenta o select executado no arquivo, como abaixo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | SQL> SELECT DISTINCT DWCDCLIE FROM DWATOOA WHERE DWFLATTI = 0; 563163 563166 567968 567984 563094 567974 563161 563164 567971 567989 567991 567973 567969 567979 567970 561783 563165 567972 SQL> spool off |
Alguem tem uma lista no qual eu vejo os tipos de set's q posso dar para tirar essas linhas de comando???
Obrigado!!!!

Felipe
Curtir tópico
+ 0Post mais votado
01/06/2017
Salva este scripit no arquivo x.sql (ou qualquer nome) e depois executa
Só pra testar, depois troca a query pela sua.
accept v_arquivo prompt "Informe o nome do arquivo com extensão: "
accept v_separador prompt "Informe o separador: "
set feedback off
set heading off
set termout off
Set echo off
set verify off
Set Pagesize 0
Set linesize 1000
Set Trimspool on
spool &v_arquivo
with x as(
select 1 col1, 2 col2, 3 col3, 4 col4 from dual
union
select 5 col1, 6 col2, 7 col3, 8 col4 from dual
union
select 9 col1, 10 col2, 11 col3, 12 col4 from dual)
Select col1||'&v_separador'||col2||'&v_separador'||col3||'&v_separador'||col4
from x;
spool off
Roberto Spernega

Gostei + 1
Mais Posts
01/06/2017
Roberto Spernega
set echo off
set feedback off
set heading off
spool 'C:\\\\TESTE\\\\TXT\\\\testespool.txt'
SELECT DISTINCT DWCDCLIE FROM DWATOOA WHERE DWFLATTI = 0;
spool off
salva como, por exemplo, c:\\teste\\x.sql
Daí no SqlPlus você executa @c:\\teste\\x.sql
Gostei + 0
01/06/2017
Felipe
Gostei + 0
01/06/2017
Roberto Spernega
Gostei + 0
01/06/2017
Felipe
Com o UTL_FILE eu consegui criar a Procedure e aparentemente esta tudo correto, porem quando eu executo a procedure, aparece "Operação inválida no arquivo." .. Eu procurei na internet sobre o assunto, mas todas as formas que tentei olhando os foruns, não deu certo.
Por isso estou tentando pelo Spool.
No Spool estou conseguindo gerar o arquivo, ao menos, porem não estou conseguindo formata-lo de uma maneira melhor.
Gostei + 0
01/06/2017
Roberto Spernega
Dai eu tento ver se consigo.
Gostei + 0
01/06/2017
Felipe
Entao seria algo tipo..
1 2 3 4 5 6 7 8 9 10 11 | var1 varchar2(200) := 'C:\\Teste'; var2 varchar2(1) := ';'; set feedback off set heading off spool var1 select campo1||var2||campo2||var2||campo3 from tabela spool off |
Gostei + 0
01/06/2017
Felipe
Gostei + 0
01/06/2017
Felipe
O único jeito de não aparecer a query seria chamando o arquivo como .sql? Não tem nenhum jeito de deixar uma procedure pronta com a query para executar?
Gostei + 0
01/06/2017
Roberto Spernega
Pra colocar tudo numa procedure precisaria do UTL_FILE e o UTL_FILE não gera num disco local, só num diretório definido no banco.
Fiz uns testes aqui e não consegui fazer via procedure sem ter um script pra definir as variáveis e os SETs e chamar a execução dela.
Gostei + 0
01/06/2017
Roberto Spernega
call C:\\oracle\\product\\10.2.0\\client_1\\bin\\sqlplusw.exe usuario/senha @c:\\temp\\sp_gera_Arquivo.sql
o problema é que teria que ter o usuário e senha nesta BAT.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)