Váš výběr je neúplný, protože nemáte from
klauzuli, ale nejsem si jistý, zda jste ji neztratili při kopírování a vkládání. Jak to tak je, není co spustit, protože částečný příkaz není nikdy proveden (žádné ukončení ;
nebo /
na dalším řádku). Pokud jste měli from farmers;
klauzule, pak by pravděpodobně zobrazil příkaz plus chybu ORA-00923.
Mezi pole nemůžete vložit čárku v uvozovkách, musíte pole s tímto znakem zřetězit pomocí ||
symbol zřetězení:
spool 'c:\farmerList.csv'
select FIRSTNAME
||','|| LASTNAME
||','|| TRN
||','|| CELL
||','|| PARISH
from farmers;
poskytuje soubor obsahující
Joe,Grundy,X,Y,Ambridge
Pole nemusí být na samostatných řádcích, jen mi to přijde snazší číst a sledovat čárky.
Nepotřebujete /
za příkazem spool - tím se znovu provede poslední příkaz před spool
, pokud existuje - a nepotřebujete uvozovky kolem názvu spoolového souboru, pokud neobsahuje mezery, ale neublíží.
K dispozici je také set colsep
příkaz, který můžete použít k vytvoření oddělovače sloupců na čárku, ale musíte se starat o vyplnění, takže je pro mě jednodušší zřetězit sloupce dohromady, jak to (téměř) děláte vy.
Až na to, že je to pro SQL*Plus, protože jsem si nevšiml odkazu na vývojáře SQL v názvu. Spool je ve Vývojáři trochu zvláštní, protože se zdá, že zachycuje a opakuje věci, které pravděpodobně nechcete, a ne všechny z set
příkazy fungují (které závisí na verzi).
Myslím, že bezpečnější a preferovaný způsob je spustit normální dotaz bez zřetězených čárek:
select FIRSTNAME, LASTNAME, TRN, CELL, PARISH
from farmers;
a s 'spustit' spíše než 'spustit skript', takže výsledky se zobrazí v zobrazení mřížky v okně výsledků dotazu. Klikněte pravým tlačítkem myši na mřížku a zvolte 'export'. Poté můžete uložit jako CSV nebo dokonce jako XLS a můžete se rozhodnout, že nechcete mít řádek záhlaví, pokud chcete.