[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) is een interactieve tool die bij elke moderne Oracle-installatie wordt geïnstalleerd. SQL Plus stelt u in staat verder te gaan dan de standaard databasequery's met batches, scripts en berekeningen die buiten het normale bereik van Oracle vallen.
Het is zelfs mogelijk, zoals we hieronder zullen onderzoeken, om tekstbestanden te genereren, zoals .csv
, met behulp van de uitvoer van een bepaalde databasequery.
SQL*Plus starten
Afhankelijk van uw Oracle-installatie heeft u mogelijk toegang tot een van de vele verschillende versies of "modi" waarin u de SQL*Plus-toepassing kunt uitvoeren.
SQL*Plus-opdrachtregel
Als u SQL*Plus Command-line
. wilt gebruiken , geef je gewoon de sqlplus
commando vanuit je shell:
$ sqlplus
Dit zal proberen u te verbinden met de standaard database en u wordt gevraagd uw gegevens in te voeren om uzelf te verifiëren.
In het geval dat u verbinding moet maken met een andere database
of gebruik een andere user
(schema
), probeer het volgende en vervang zo nodig uw eigen waarden:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Als je er toegang toe hebt, wil je misschien iSQL*Plus
. gebruiken , een browsergebaseerde versie van de SQL*Plus-opdrachtregeltool.
Dit wordt bereikt door simpelweg naar de iSQL*Plus URL
te gaan voor uw database en installatie. De exacte URL varieert, maar heeft meestal de volgende indeling:http://machine_name.domain:port/isqlplus
SQL*Plus voor Windows
Als u Windows gebruikt, is er ook een Windows GUI-versie van SQL*Plus, die doorgaans vanuit uw startmenu kan worden gestart:Start > Programs > Oracle > Application Development > SQL Plus
.
Een query uitvoeren naar een bestand
Nu u bent verbonden met SQL*Plus, kunnen we beginnen met het maken van ons bestand.
SQL*Plus-configuratie wijzigen
De eerste stap is het configureren van enkele SQL*PLus-systeeminstellingen met behulp van de SET
verklaring.
Voor dit voorbeeld zullen we deze instellingen één keer handmatig wijzigen voorafgaand aan onze zoekopdracht en het genereren van bestanden, maar indien gewenst kunt u de standaardwaarden van verschillende instellingen wijzigen in uw User Profile
, te vinden in de login.sql
bestand.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
De eerste paar instellingen die je normaal gesproken niet wilt veranderen, maar we zullen kort uitleggen wat ze bereiken.
colsep
is het scheidingsteken dat wordt gebruikt om uw kolommen te splitsen. Voor een.csv
bestand, is dit een simpele komma.headsep
is het scheidingsteken voor de koprij (als u er een nodig hebt). In dit voorbeeld voeren we de koprij niet uit, dus laten we ditoff
.pagesize
is het aantal regels "per pagina". Dit is een enigszins archaïsche instelling die bedoeld is om af te drukken zonder al te veel regels per pagina. Met een waarde van0
, we gebruiken geen pagina's omdat we naar een bestand gaan. Als u ervoor kiest om deheader
weer te geven rij, stelpagesize
in tot een zeer groot aantal (groter dan het verwachte aantal recordresultaten in de zoekopdracht), dus uw kopregel wordt slechts één keer weergegeven in plaats van één keer 'per pagina'.trimspool
ingesteld opon
verwijdert eenvoudig de volgende witruimte.
Nu moeten de laatste twee instellingen worden gewijzigd, afhankelijk van uw vraag.
set linesize #
set numwidth #
- Voor
linesize
, de#
waarde moet het totale aantal uitvoerkolommen in uw resulterende zoekopdracht zijn. numwidth
is de kolombreedte (aantal spaties) die wordt gebruikt bij het uitvoeren van numerieke waarden.
SPOOL-opdracht
Opmerking:de SPOOL
opdracht is niet beschikbaar in de browsergebaseerde SQL*Plus-versie, iSQL*Plus
. Om bestanden te genereren tijdens het gebruik van iSQL*Plus, wijzigt u de noodzakelijke voorkeursinstellingen zodat ze rechtstreeks naar een bestand worden uitgevoerd.
Nu onze instellingen zijn geregeld, moeten we SQL*Plus nu vertellen om een bestand uit te voeren. Dit wordt bereikt met behulp van de SPOOL
verklaring.
Terwijl SPOOL
is actief , zal SQL*PLus de uitvoer van elke query opslaan in het opgegeven bestand.
Daarom is het volgende commando om in te voeren spool
:
spool file_path
Iets vooruitspringen, na uw zoekopdracht is ingevoegd, u moet ook spool
stoppen dus de bestandsuitvoer wordt gesloten met behulp van de spool off
commando:
spool off
Voeg de query in
De laatste stap nadat de instellingen zijn gewijzigd en spool
draait, is om uw query in te voegen. Voor ons eenvoudige voorbeeld geven we alle boeken uit onze books
tafel.
SELECT
title,
primary_author
FROM
books;
Vergeet de puntkomma niet om uw query-instructie te sluiten en voer vervolgens de bovengenoemde spool off
in commando.
Dat is alles, u heeft een nieuw tekstbestand gegenereerd met de resultaten van uw zoekopdracht met SQL*Plus.
Tip:een scriptbestand gebruiken
In plaats van elke regel handmatig in te voeren, wordt aangeraden om alle instellingen in een nieuw scriptbestand in te voeren dat u met één opdracht in SQL*Plus kunt uitvoeren.
Maak een nieuw scriptbestand aan met de EDIT
verklaring:
EDIT file_name
Plak nu de volledige lijst met scriptopdrachten in uw nieuwe bestand en sla op. De volledige inhoud van ons voorbeeldscript vindt u hieronder.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
Om het script uit te voeren, gebruik je gewoon de @
symbool gevolgd door de bestandsnaam:
@file_name
Uw script moet worden uitgevoerd en de .csv
bestand gemaakt zoals verwacht.