Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como exportar corretamente os resultados da instrução select para o arquivo Csv usando spool no desenvolvedor oracle sql


Sua seleção está incompleta porque você não tem um from cláusula, mas não tenho certeza se você perdeu isso no copiar e colar. Como está, não há nada para ser executado, pois a instrução parcial nunca é executada (sem terminar ; ou / na próxima linha). Se você tiver um from farmers; cláusula então mostraria o comando mais um erro ORA-00923, provavelmente.

Você não pode simplesmente colocar uma vírgula entre os campos, você precisa concatenar os campos com esse caractere usando o || símbolo de concatenação:
spool 'c:\farmerList.csv'

select FIRSTNAME
    ||','|| LASTNAME
    ||','|| TRN
    ||','|| CELL
    ||','|| PARISH
from farmers;

fornece um arquivo contendo
Joe,Grundy,X,Y,Ambridge

Os campos não precisam estar em linhas separadas, apenas acho mais fácil de ler e acompanhar as vírgulas.

Você não precisa do / após o comando spool - que irá reexecutar a última instrução antes do spool , se houver um - e você não precisa das aspas em torno do nome do arquivo de spool, a menos que contenha espaços, mas eles não prejudicam.

Há também um set colsep comando que você pode usar para transformar o separador de colunas em uma vírgula, mas você precisa se preocupar com o preenchimento, então acho mais fácil concatenar as colunas como você está (quase) fazendo.

Exceto que é para o SQL*Plus, pois não notei a referência do SQL Developer no título. Spool é um pouco estranho no Developer, pois parece interceptar e ecoar coisas que você provavelmente não deseja, e nem todo o set comandos funcionam (quais dependem da versão).

A maneira mais segura e preferida, eu acho, é executar uma consulta normal sem vírgulas concatenadas:
select FIRSTNAME, LASTNAME, TRN, CELL, PARISH
from farmers;

e com 'executar' em vez de 'executar script', para que os resultados apareçam na exibição de grade na janela de resultados da consulta. Clique com o botão direito do mouse na grade e escolha 'exportar'. Você pode salvar como um CSV, ou mesmo como um XLS, e pode optar por não ter uma linha de cabeçalho, se preferir.