Вашият избор е непълен, тъй като нямате from
клауза, но не съм сигурен дали сте го загубили при копирането и поставянето. Както е, няма какво да се изпълнява, тъй като частичният оператор никога не се изпълнява (няма прекратяващ ;
или /
на следващия ред). Ако сте имали from farmers;
клауза, тогава ще покаже командата плюс грешка ORA-00923, вероятно.
Не можете просто да поставите запетая в кавички между полетата, трябва да свържете полетата с този знак, като използвате ||
символ за конкатенация:
spool 'c:\farmerList.csv'
select FIRSTNAME
||','|| LASTNAME
||','|| TRN
||','|| CELL
||','|| PARISH
from farmers;
дава файл, съдържащ
Joe,Grundy,X,Y,Ambridge
Не е необходимо полетата да са на отделни редове, просто смятам, че това е по-лесно за четене и следене на запетаите.
Нямате нужда от /
след командата spool - това ще изпълни отново последния оператор преди spool
, ако има такъв - и нямате нужда от кавичките около името на спулния файл, освен ако не съдържа интервали, но те не вредят.
Има и set colsep
команда, която можете да използвате, за да превърнете разделителя на колони в запетая, но трябва да се притеснявате за подпълването, така че намирам за по-лесно да свържа колоните заедно, както (почти) правите.
Освен това е за SQL*Plus, тъй като не забелязах препратката към SQL Developer в заглавието. Спулирането е малко странно в Developer, тъй като изглежда улавя и отразява неща, които вероятно не искате, а не всички от set
командите работят (кои зависи от версията).
По-безопасният и предпочитан начин според мен е да се изпълни нормална заявка без свързани запетаи:
select FIRSTNAME, LASTNAME, TRN, CELL, PARISH
from farmers;
и с 'run' вместо 'run script', така че резултатите да се показват в мрежовия изглед в прозореца с резултати от заявката. Щракнете с десния бутон върху решетката и изберете „експортиране“. След това можете да запазите като CSV или дори като XLS и можете да изберете да нямате заглавен ред, ако предпочитате.