Configurações do SQLPLUS para gerar arquivo de dados separado pela TAB
Pergunta
Alguém tem um bom conjunto de diretivas de configuração do SQLPLUS para ajudar a transformar uma determinada consulta SQL em uma saída separada da guia para puxar uma planilha ou processamento adicional?
Solução
Confira a documentação do Oracle:
Você pode gerar uma guia no Oracle usando o valor ASCII da TAB 9 e a função CHR:
select chr(9) from dual;
Outras dicas
Como Justin apontou em seu link, usando o set colsep
Função O comando sqlplus salva digitar um separador para cada coluna.
Mas para Tab-delimitado, set colsep Chr(9)
não vai funcionar.
Para Unix ou Linux, use set colsep ' '
com o espaço entre as cantetas únicas sendo uma guia digitada.
Para Windows, use estas configurações:
col TAB# new_value TAB NOPRINT
select chr(9) TAB# from dual;
set colsep "&TAB"
select * from table;
Um script específico que eu roubei em mais de uma ocasião vem de um tópico de Asktom Extraindo dados para um arquivo plano. Se eu precisava de um arquivo plano rápido e sujo do SQL*Plus. Eu tenderia a preferir a função dump_csv que Tom postou anteriormente nesse tópico para qualquer tipo de processo contínuo.
Eu tenho uma solução estúpida. Funcionou muito bem.
Solução
SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ...
FROM table
princípio por trás
Na verdade, é apenas um Concatenação da string.
Chr (9) -> ' t'
coluna1 || Chr (9) || coluna2 -> CONCAT (Column1, ' t', Column2)