Ao consultar o Oracle Database, você pode usar o
SPOOL comando para exportar os resultados da consulta para um arquivo de texto ao usar SQLcl. Exemplo
Aqui está um exemplo que exporta uma tabela inteira:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Aqui está o que ele fez, linha por linha:
- A primeira linha usa o
SPOOLcomando para especificar onde o arquivo de saída será gravado. Certifique-se de alterar/Users/barney/data/regions.txtpara um local em seu sistema e um nome de arquivo apropriado. - Na segunda linha, executei a consulta SQL – os resultados para os quais estou exportando. Nesse caso, exportei todas as
regionstabela. - Em seguida, virei
SPOOLdesligado.
Aqui está a aparência do arquivo resultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
No meu caso, meu
SQLFORMAT foi definido como ansiconsole , e a saída reflete isso. Você pode alterar isso para qualquer formato adequado.
Aqui está um exemplo de exportação do resultado em um formato que pode ser usado como um arquivo de importação com sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole Resultado:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
Neste caso eu também resetei o
SQLFORMAT de volta ao ansiconsole uma vez que o SPOOL operação havia sido concluída. Remover comentários
Você pode remover o
X rows selected com SET FEEDBACK off :SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Resultado:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Neste caso eu virei
FEEDBACK novamente após exportar o arquivo. Anexar os resultados
Por padrão,
SPOOL usa REPLACE , que substitui o arquivo se ele já existir. No entanto, podemos usar o
APPEND argumento para anexar os resultados ao arquivo. Exemplo:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Arquivo resultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Este exemplo anexou os resultados ao arquivo que foi criado (e preenchido) no exemplo anterior. Isso resultou na duplicação do resultado no arquivo.
Substituir o arquivo existente
Podemos usar
REPLACE para substituir o arquivo existente com os resultados de uma nova consulta:SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Arquivo resultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Como mencionado,
REPLACE é a configuração padrão, então poderíamos simplesmente omitir esse argumento completamente.