[SQLPlus](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) est un outil interactif qui est installé avec chaque installation Oracle moderne. SQL Plus vous permet d'aller au-delà des requêtes de base de données standard avec des lots, des scripts et des calculs au-delà de la portée normale d'Oracle.
Il est même possible, comme nous le verrons ci-dessous, de générer des fichiers texte, tels que .csv
, en utilisant la sortie d'une requête de base de données particulière.
Lancement de SQL*Plus
En fonction de votre installation Oracle, vous pouvez avoir accès à l'une des nombreuses versions ou "modes" différents dans lesquels exécuter l'application SQL*Plus.
Ligne de commande SQL*Plus
Si vous souhaitez utiliser la SQL*Plus Command-line
, vous émettez simplement le sqlplus
commande depuis votre shell :
$ sqlplus
Cela tentera de vous connecter au par défaut base de données et vous serez invité à entrer vos informations d'identification pour vous authentifier.
Dans le cas où vous auriez besoin de vous connecter à une autre database
ou utilisez un autre user
(schema
), essayez ce qui suit, en remplaçant vos propres valeurs si nécessaire :
$ sqlplus schema@//machine.domain:port/database
iSQL*Plus
Si vous y avez accès, vous pouvez utiliser iSQL*Plus
, qui est une version basée sur un navigateur de l'outil de ligne de commande SQL*Plus.
Ceci est accompli en visitant simplement l'iSQL*Plus URL
pour votre base de données et votre installation. L'URL exacte varie, mais elle est généralement au format suivant :http://machine_name.domain:port/isqlplus
SQL*Plus pour Windows
Si vous utilisez Windows, il existe également une version graphique Windows de SQL*Plus, qui peut généralement être lancée à partir de votre menu Démarrer :Start > Programs > Oracle > Application Development > SQL Plus
.
Sortie d'une requête dans un fichier
Maintenant que vous êtes connecté à SQL*Plus, nous pouvons commencer à créer notre fichier.
Modifier la configuration SQL*Plus
La première étape consiste à configurer certains paramètres système SQL*PLus à l'aide de SET
déclaration.
Pour cet exemple, nous modifierons manuellement ces paramètres une fois avant notre requête et la génération de fichier, mais si vous le souhaitez, vous pouvez modifier les valeurs par défaut de divers paramètres dans votre User Profile
, situé dans le login.sql
fichier.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Vous ne voudrez généralement pas modifier les premiers paramètres, mais nous expliquerons brièvement ce que chacun accomplit.
colsep
est le caractère de séparation utilisé pour diviser vos colonnes. Pour un.csv
fichier, il s'agit d'une simple virgule.headsep
est le caractère de séparation de la ligne d'en-tête (si vous en avez besoin). Dans cet exemple, nous ne produisons pas la ligne d'en-tête, nous laisserons donc ceoff
.pagesize
est le nombre de lignes "par page". Il s'agit d'un paramètre un peu archaïque qui est destiné à imprimer sans avoir trop de lignes par page. Avec une valeur de0
, nous n'utilisons pas de pages puisque nous publions dans un fichier. Si vous choisissez d'afficher l'header
ligne, définissezpagesize
à un très grand nombre (supérieur au nombre attendu de résultats d'enregistrement dans la requête), de sorte que votre ligne d'en-tête n'apparaîtra qu'une seule fois au lieu d'une seule "par page".trimspool
défini suron
supprime simplement les espaces de fin.
Maintenant, les deux derniers paramètres devront être modifiés en fonction de votre requête.
set linesize #
set numwidth #
- Pour
linesize
, le#
la valeur doit être le nombre total de colonnes de sortie dans votre requête résultante. numwidth
est la largeur de colonne (nombre d'espaces de caractères) utilisée lors de la sortie de valeurs numériques.
Commande SPOOL
Remarque :Le SPOOL
la commande n'est pas disponible dans la version SQL*Plus basée sur un navigateur, iSQL*Plus
. Pour générer des fichiers lors de l'utilisation d'iSQL*Plus, modifiez les paramètres de préférence nécessaires pour sortir directement dans un fichier.
Une fois nos paramètres pris en charge, nous devons maintenant indiquer à SQL*Plus de générer un fichier. Ceci est accompli en utilisant le SPOOL
déclaration.
Tandis que SPOOL
est actif , SQL*PLus stockera la sortie de toute requête dans le fichier spécifié.
Par conséquent, la prochaine commande à entrer est spool
:
spool file_path
Sauter légèrement en avant, après votre requête est insérée, vous devez également arrêter spool
donc la sortie du fichier est fermée en utilisant le spool off
commande :
spool off
Insérer la requête
La dernière étape après la modification des paramètres et spool
est en cours d'exécution consiste à insérer votre requête. Pour notre exemple simple, nous sortons tous les livres de nos books
tableau.
SELECT
title,
primary_author
FROM
books;
N'oubliez pas le point-virgule pour fermer votre instruction de requête, puis entrez le spool off
susmentionné commande.
Ça y est, vous avez généré un nouveau fichier texte avec les résultats de votre requête en utilisant SQL*Plus.
Astuce :Utiliser un fichier de script
Plutôt que d'entrer manuellement chaque ligne, il est suggéré d'entrer tous les paramètres dans un nouveau fichier de script que vous pouvez exécuter dans SQL*Plus en une seule commande.
Créez un nouveau fichier de script avec le EDIT
déclaration :
EDIT file_name
Collez maintenant la liste complète des commandes de script dans votre nouveau fichier et enregistrez. Le contenu complet de notre exemple de script se trouve ci-dessous.
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
Pour exécuter le script, utilisez simplement le @
symbole suivi du nom du fichier :
@file_name
Votre script doit être exécuté et le .csv
fichier créé comme prévu.