[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:http://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.
colsep
er skilletegn, der bruges til at opdele dine kolonner. For en.csv
fil, er dette et simpelt komma.headsep
er skilletegn for overskriftsrækken (hvis du har brug for en). I dette eksempel udsender vi ikke overskriftsrækken, så vi lader denneoff
.pagesize
er 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 viseheader
række, indstilpagesize
til 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."trimspool
indstillet tilon
fjerner 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. numwidth
er 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.