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.