[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) er et interaktivt værktøj, der kommer installeret med enhver moderne Oracle-installation. SQL Plus giver dig mulighed for at gå ud over standarddatabaseforespørgsler med batches, scripts og beregninger ud over det normale anvendelsesområde for Oracle.
Det er endda muligt, som vi vil udforske nedenfor – at generere tekstfiler, såsom .csv , ved at bruge outputtet fra en bestemt databaseforespørgsel.
Lancering af SQL*Plus
Afhængigt af din Oracle-installation kan du have adgang til en af mange forskellige versioner eller "tilstande", hvor du kan køre SQL*Plus-applikationen.
SQL*Plus kommandolinje
Hvis du ønsker at bruge SQL*Plus Command-line , skal du blot udstede sqlplus kommando fra din shell:
$ sqlplus
Dette vil forsøge at forbinde dig til standarden database, og du bliver bedt om at indtaste dine legitimationsoplysninger for at autentificere dig selv.
I tilfælde af at du skal oprette forbindelse til en anden database eller brug en anden user (schema ), prøv følgende, og udskift dine egne værdier efter behov:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Hvis du har adgang til det, kan du bruge iSQL*Plus , som er en browserbaseret version af kommandolinjeværktøjet SQL*Plus.
Dette opnås ved blot at besøge iSQL*Plus URL til din database og installation. Den nøjagtige URL vil variere, men den er typisk i følgende format:https://machine_name.domain:port/isqlplus
SQL*Plus til Windows
Hvis du bruger Windows, er der også en Windows GUI-version af SQL*Plus, som typisk kan startes fra din startmenu:Start > Programs > Oracle > Application Development > SQL Plus .
Udlæsning af en forespørgsel til en fil
Nu hvor du er forbundet til SQL*Plus, kan vi begynde at oprette vores fil.
Rediger SQL*Plus-konfiguration
Det første trin er at konfigurere nogle SQL*PLus-systemindstillinger ved hjælp af SET erklæring.
For dette eksempel vil vi manuelt ændre disse indstillinger én gang før vores forespørgsel og filgenerering, men hvis det ønskes, kan du ændre standardindstillingerne for forskellige indstillinger i din User Profile , placeret i login.sql fil.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
De første par indstillinger vil du typisk ikke ændre, men vi vil kort forklare, hvad hver enkelt udretter.
colseper skilletegn, der bruges til at opdele dine kolonner. For en.csvfil, er dette et simpelt komma.headseper skilletegn for overskriftsrækken (hvis du har brug for en). I dette eksempel udsender vi ikke overskriftsrækken, så vi lader denneoff.pagesizeer antallet af linjer "pr. side". Dette er en lidt arkaisk indstilling, der er beregnet til udskrivning uden at have for mange linjer pr. side. Med en værdi på0, vi bruger ikke sider, da vi udsender til en fil. Hvis du vælger at viseheaderrække, indstilpagesizetil et meget stort antal (større end det forventede antal postresultater i forespørgslen), så din overskriftsrække vises kun én gang i stedet for én gang "pr. side."trimspoolindstillet tilonfjerner blot efterstillede mellemrum.
Nu skal de sidste to indstillinger ændres afhængigt af din forespørgsel.
set linesize #
set numwidth #
- For
linesize,#værdi skal være det samlede antal outputkolonner i din resulterende forespørgsel. numwidther kolonnebredden (antal tegnmellemrum), der bruges ved udlæsning af numeriske værdier.
SPOOL-kommando
Bemærk:SPOOL kommandoen er ikke tilgængelig i den browserbaserede SQL*Plus-version, iSQL*Plus . For at generere filer, mens du bruger iSQL*Plus, skal du ændre de nødvendige præferenceindstillinger til direkte output til en fil.
Med vores indstillinger taget hånd om, skal vi nu bede SQL*Plus om at udskrive en fil. Dette opnås ved hjælp af SPOOL erklæring.
Mens SPOOL er aktiv , vil SQL*PLus gemme output fra enhver forespørgsel til den angivne fil.
Derfor er den næste kommando, der skal indtastes, spool :
spool file_path
Springer lidt frem efter din forespørgsel er indsat, skal du også stoppe spool så filoutputtet lukkes ved at bruge spool off kommando:
spool off
Indsæt forespørgslen
Det sidste trin efter indstillingerne er ændret og spool kører, er at indsætte din forespørgsel. For vores simple eksempel udskriver vi alle bøger fra vores books tabel.
SELECT
title,
primary_author
FROM
books;
Glem ikke semikolon for at lukke din forespørgselserklæring, og indtast derefter den førnævnte spool off kommando.
Det er det, du har genereret en ny tekstfil med resultaterne af din forespørgsel ved hjælp af SQL*Plus.
Tip:Brug af en scriptfil
I stedet for manuelt at indtaste hver linje, foreslås det at indtaste alle indstillingerne i en ny scriptfil, som du kan udføre i SQL*Plus i en enkelt kommando.
Opret en ny scriptfil med EDIT erklæring:
EDIT file_name
Indsæt nu hele scriptkommandolisten i din nye fil og gem. Det fulde indhold af vores eksempelscript kan findes nedenfor.
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
For at udføre scriptet skal du blot bruge @ symbol efterfulgt af filnavnet:
@file_name
Dit script skal udføres og .csv fil oprettet som forventet.