sql >> Database >  >> RDS >> Oracle

Hoe de resultaten van de select-instructie correct naar het Csv-bestand te exporteren met behulp van de spool in de Oracle SQL-ontwikkelaar

Uw selectie is onvolledig omdat u geen from . heeft clausule, maar weet niet zeker of je die bij het kopiëren en plakken bent kwijtgeraakt. Zoals het is, is er niets om uit te voeren, aangezien de gedeeltelijke instructie nooit wordt uitgevoerd (geen beëindiging ; of / op de volgende regel). Als je een from farmers; clausule, dan zou het waarschijnlijk de opdracht plus een ORA-00923-fout tonen.

U kunt niet zomaar een komma tussen aanhalingstekens tussen de velden plaatsen, u moet de velden met dat teken samenvoegen met behulp van de || aaneenschakelingssymbool:

spool 'c:\farmerList.csv'

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

geeft een bestand met

Joe,Grundy,X,Y,Ambridge

De velden hoeven niet op aparte regels te staan, dat vind ik gewoon makkelijker te lezen en de komma's bij te houden.

Je hebt de / . niet nodig na het spool-commando - dat zal de laatste instructie voor de spool opnieuw uitvoeren , als die er is - en je hebt de aanhalingstekens rond de spoolbestandsnaam niet nodig, tenzij het spaties bevat, maar ze doen geen pijn.

Er is ook een set colsep commando dat je kunt gebruiken om van het kolomscheidingsteken een komma te maken, maar je moet je zorgen maken over opvulling, dus ik vind het gemakkelijker om de kolommen samen te voegen zoals je (bijna) doet.

Behalve dat dat voor SQL*Plus is, omdat ik de verwijzing naar SQL Developer in de titel niet heb opgemerkt. Spool is een beetje vreemd in Developer omdat het dingen lijkt te vangen en te echoën die je waarschijnlijk niet wilt, en niet alle set commando's werken (welke zijn afhankelijk van de versie).

De veiligere en geprefereerde manier is, denk ik, om een ​​normale zoekopdracht uit te voeren zonder aaneengeschakelde komma's:

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

en met 'uitvoeren' in plaats van 'script uitvoeren', zodat de resultaten verschijnen in de rasterweergave in het venster met queryresultaten. Klik met de rechtermuisknop op het raster en kies 'exporteren'. U kunt dan opslaan als een CSV, of zelfs als een XLS, en u kunt ervoor kiezen om geen koprij te hebben als u dat liever heeft.



  1. java.lang.ArithmeticException bij een poging om verbinding te maken in Oracle 11.2.0.2.0 (64 bit)

  2. Oracle TO_DATE met alleen tijdinvoer zal een datumcomponent toevoegen op basis van welke logica?

  3. SQL-gebruikers zoeken zoekopdracht

  4. enum('yes', 'no') vs tinyint -- welke te gebruiken?