Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment exporter correctement les résultats de l'instruction select dans un fichier Csv à l'aide de spool dans le développeur Oracle SQL

Votre sélection est incomplète car vous n'avez pas de from clause, mais je ne sais pas si vous l'avez perdu dans le copier-coller. En l'état, il n'y a rien à exécuter, car l'instruction partielle n'est jamais exécutée (pas de terminaison ; ou / sur la ligne suivante). Si vous aviez un from farmers; clause alors il montrerait la commande plus une erreur ORA-00923, probablement.

Vous ne pouvez pas simplement mettre une virgule entre guillemets entre les champs, vous devez concaténer les champs avec ce caractère en utilisant le || symbole de concaténation :

spool 'c:\farmerList.csv'

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

donne un fichier contenant

Joe,Grundy,X,Y,Ambridge

Les champs n'ont pas besoin d'être sur des lignes séparées, je trouve cela plus facile à lire et à garder une trace des virgules.

Vous n'avez pas besoin du / après la commande spool - qui ré-exécutera la dernière instruction avant le spool , s'il y en a un - et vous n'avez pas besoin des guillemets autour du nom du fichier spoule à moins qu'il ne contienne des espaces, mais ils ne font pas de mal.

Il y a aussi un set colsep commande que vous pouvez utiliser pour transformer le séparateur de colonnes en virgule, mais vous devez vous soucier du remplissage, donc je trouve plus facile de concaténer les colonnes ensemble comme vous le faites (presque).

Sauf que c'est pour SQL*Plus, car je n'ai pas remarqué la référence SQL Developer dans le titre. Spool est un peu étrange dans Developer car il semble piéger et faire écho des choses que vous ne voulez probablement pas, et pas tout le set commandes fonctionnent (celles-ci dépendent de la version).

Je pense que le moyen le plus sûr et le plus préféré consiste à exécuter une requête normale sans virgules concaténées :

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

et avec 'run' plutôt que 'run script', de sorte que les résultats apparaissent dans la vue de la grille dans la fenêtre des résultats de la requête. Faites un clic droit sur la grille et choisissez "exporter". Vous pouvez ensuite enregistrer au format CSV, ou même au format XLS, et choisir de ne pas avoir de ligne d'en-tête si vous préférez.