[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) è uno strumento interattivo che viene installato con ogni moderna installazione di Oracle. SQL Inoltre, ti consente di andare oltre le query standard del database con batch, script e calcoli oltre il normale ambito di Oracle.
È anche possibile, come esploreremo di seguito, generare file di testo, come .csv
, utilizzando l'output di una particolare query di database.
Avvio di SQL*Plus
A seconda della tua installazione Oracle, potresti avere accesso a una delle tante versioni o "modalità" diverse in cui eseguire l'applicazione SQL*Plus.
Riga di comando SQL*Plus
Se desideri utilizzare SQL*Plus Command-line
, rilascerai semplicemente il sqlplus
comando dalla tua shell:
$ sqlplus
Questo tenterà di connetterti al predefinito database e ti verrà chiesto di inserire le tue credenziali per autenticarti.
Nel caso sia necessario collegarsi a un database
diverso oppure usa un diverso user
(schema
), prova quanto segue, sostituendo i tuoi valori se necessario:
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Se hai accesso ad esso, potresti voler utilizzare iSQL*Plus
, che è una versione basata su browser dello strumento da riga di comando SQL*Plus.
Ciò si ottiene semplicemente visitando l'iSQL*Plus URL
per il database e l'installazione. L'URL esatto varia, ma in genere è nel seguente formato:http://machine_name.domain:port/isqlplus
SQL*Plus per Windows
Se utilizzi Windows, è disponibile anche una versione della GUI di Windows di SQL*Plus, che in genere può essere avviata dal menu di avvio:Start > Programs > Oracle > Application Development > SQL Plus
.
Emissione di una query in un file
Ora che sei connesso a SQL*Plus possiamo iniziare a creare il nostro file.
Modifica configurazione SQL*Plus
Il primo passaggio consiste nel configurare alcune impostazioni di sistema SQL*PLus utilizzando il SET
dichiarazione.
Per questo esempio, modificheremo manualmente queste impostazioni una volta prima della nostra query e generazione di file, ma se lo desideri, puoi modificare le impostazioni predefinite di varie impostazioni nel tuo User Profile
, che si trova in login.sql
file.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Le prime impostazioni in genere non vorrai modificare, ma spiegheremo brevemente cosa realizza ciascuna.
colsep
è il carattere separatore utilizzato per dividere le colonne. Per un.csv
file, questa è una semplice virgola.headsep
è il carattere separatore per la riga di intestazione (se necessario). In questo esempio non stiamo generando la riga di intestazione, quindi lasceremo questooff
.pagesize
è il numero di righe "per pagina". Si tratta di un'impostazione leggermente arcaica destinata alla stampa senza troppe righe per pagina. Con un valore di0
, non utilizziamo le pagine poiché stiamo eseguendo l'output su un file. Se scegli di mostrare l'header
riga, impostapagesize
a un numero molto elevato (maggiore del numero previsto di risultati di record nella query), quindi la riga di intestazione verrà visualizzata solo una volta anziché una volta "per pagina".trimspool
impostato suon
rimuove semplicemente lo spazio bianco finale.
Ora le ultime due impostazioni dovranno essere modificate a seconda della tua richiesta.
set linesize #
set numwidth #
- Per
linesize
, il#
value dovrebbe essere il numero totale di colonne di output nella query risultante. numwidth
è la larghezza della colonna (numero di spazi di caratteri) utilizzata durante l'output di valori numerici.
Comando SPOOL
Nota:il SPOOL
il comando non è disponibile nella versione SQL*Plus basata su browser, iSQL*Plus
. Per generare file durante l'utilizzo di iSQL*Plus, modificare le impostazioni delle preferenze necessarie per l'output diretto su un file.
Con le nostre impostazioni curate, ora dobbiamo dire a SQL*Plus di generare un file. Questo si ottiene usando SPOOL
dichiarazione.
Mentre SPOOL
è attivo , SQL*PLus memorizzerà l'output di qualsiasi query nel file specificato.
Pertanto, il prossimo comando da inserire è spool
:
spool file_path
Saltando leggermente in avanti, dopo la tua richiesta è inserita, devi anche fermare spool
quindi l'output del file viene chiuso utilizzando spool off
comando:
spool off
Inserisci la query
L'ultimo passaggio dopo la modifica delle impostazioni e lo spool
è in esecuzione è inserire la tua query. Per il nostro semplice esempio, stiamo generando tutti i libri dai nostri books
tabella.
SELECT
title,
primary_author
FROM
books;
Non dimenticare il punto e virgola per chiudere la tua dichiarazione di query, quindi inserisci il summenzionato spool off
comando.
Ecco fatto, hai generato un nuovo file di testo con i risultati della tua query utilizzando SQL*Plus.
Suggerimento:utilizzo di un file di script
Invece di inserire manualmente ogni riga, si suggerisce di inserire tutte le impostazioni in un nuovo file di script che puoi eseguire in SQL*Plus con un unico comando.
Crea un nuovo file di script con EDIT
dichiarazione:
EDIT file_name
Ora incolla l'intero elenco di comandi di script nel tuo nuovo file e salva. Il contenuto completo del nostro script di esempio può essere trovato di seguito.
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
Per eseguire lo script, usa semplicemente il @
simbolo seguito dal nome del file:
@file_name
Il tuo script dovrebbe essere eseguito e il .csv
file creato come previsto.