Twój wybór jest niekompletny, ponieważ nie masz from
klauzuli, ale nie jestem pewien, czy zgubiłeś to podczas kopiowania i wklejania. Tak jak jest, nie ma nic do uruchomienia, ponieważ instrukcja częściowa nigdy nie jest wykonywana (bez zakończenia ;
lub /
w następnym wierszu). Jeśli masz from farmers;
klauzula, wtedy prawdopodobnie wyświetli polecenie plus błąd ORA-00923.
Nie możesz po prostu umieścić przecinka w cudzysłowie między polami, musisz połączyć pola z tym znakiem za pomocą ||
symbol konkatenacji:
spool 'c:\farmerList.csv'
select FIRSTNAME
||','|| LASTNAME
||','|| TRN
||','|| CELL
||','|| PARISH
from farmers;
daje plik zawierający
Joe,Grundy,X,Y,Ambridge
Pola nie muszą znajdować się w osobnych wierszach, po prostu uważam, że jest to łatwiejsze do odczytania i śledzenia przecinków.
Nie potrzebujesz /
po poleceniu spool - to ponownie wykona ostatnią instrukcję przed spool
, jeśli istnieje - i nie potrzebujesz cudzysłowów wokół nazwy pliku buforowania, chyba że zawiera on spacje, ale to nie zaszkodzi.
Istnieje również set colsep
polecenie, którego możesz użyć do przekształcenia separatora kolumn w przecinek, ale musisz się martwić o dopełnienie, więc łatwiej jest mi połączyć kolumny razem, tak jak (prawie) to robisz.
Tyle że dotyczy to SQL*Plus, ponieważ nie zauważyłem odniesienia do SQL Developer w tytule. Buforowanie jest nieco dziwne w programistach, ponieważ wydaje się wyłapywać i powtarzać rzeczy, których prawdopodobnie nie chcesz, a nie wszystkie z set
komendy działają (które zależą od wersji).
Myślę, że bezpieczniejszym i preferowanym sposobem jest uruchomienie normalnego zapytania bez połączonych przecinków:
select FIRSTNAME, LASTNAME, TRN, CELL, PARISH
from farmers;
i z „uruchom” zamiast „uruchom skrypt”, aby wyniki były wyświetlane w widoku siatki w oknie wyników zapytania. Kliknij prawym przyciskiem myszy na siatkę i wybierz „eksportuj”. Następnie możesz zapisać jako plik CSV, a nawet jako XLS i możesz zrezygnować z wiersza nagłówka, jeśli wolisz.