sql >> Database teknologi >  >> RDS >> Oracle

Sådan eksporteres resultaterne af select-sætningen korrekt til Csv-fil ved hjælp af spool i oracle sql-udvikler

Dit valg er ufuldstændigt, da du ikke har en from klausul, men ikke sikker på, om du har mistet det i copy-and-paste. Som det er, er der intet at køre, da den partielle sætning aldrig udføres (ingen afsluttende ; eller / på næste linje). Hvis du havde en from farmers; klausul, så ville den sandsynligvis vise kommandoen plus en ORA-00923-fejl.

Du kan ikke bare sætte et komma mellem felterne, du skal sammenkæde felterne med det tegn ved hjælp af || sammenkædningssymbol:

spool 'c:\farmerList.csv'

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

giver en fil, der indeholder

Joe,Grundy,X,Y,Ambridge

Felterne behøver ikke at være på separate linjer, det synes jeg er nemmere at læse og holde styr på kommaerne.

Du behøver ikke / efter spool-kommandoen - det vil genudsende den sidste sætning før spool , hvis der er en - og du behøver ikke anførselstegnene omkring spoolfilnavnet, medmindre det indeholder mellemrum, men de gør ikke ondt.

Der er også en set colsep kommando, som du kan bruge til at gøre kolonneseparatoren til et komma, men du skal bekymre dig om udfyldning, så jeg har lettere ved at sammenkæde kolonnerne, som du (næsten) gør.

Bortset fra at det er for SQL*Plus, da jeg ikke lagde mærke til SQL Developer-referencen i titlen. Spool er lidt mærkeligt i Developer, da det ser ud til at fange og ekko ting, du sandsynligvis ikke vil have, og ikke alle set kommandoer virker (hvilke afhænger af versionen).

Den sikrere og foretrukne måde, tror jeg, er at køre en normal forespørgsel uden sammenkædede kommaer:

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

og med 'run' i stedet for 'run script', så resultaterne vises i gittervisningen i forespørgselsresultatvinduet. Højreklik på gitteret og vælg 'eksport'. Du kan derefter gemme som en CSV eller endda som en XLS, og du kan vælge ikke at have en overskriftsrække, hvis du foretrækker det.



  1. Kunne ikke indlæse fil eller assembly for Oracle.DataAccess i .NET

  2. Tilfældigt vægtet valg i T-SQL

  3. Kører sql-scripts med indbyrdes afhængigheder

  4. Sådan indsætter du JSON i en tabel i SQL Server