[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:https://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.
colsepis het scheidingsteken dat wordt gebruikt om uw kolommen te splitsen. Voor een.csvbestand, is dit een simpele komma.headsepis het scheidingsteken voor de koprij (als u er een nodig hebt). In dit voorbeeld voeren we de koprij niet uit, dus laten we ditoff.pagesizeis 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 deheaderweer te geven rij, stelpagesizein 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'.trimspoolingesteld oponverwijdert 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. numwidthis 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.