[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 :https://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.
colsepest le caractère de séparation utilisé pour diviser vos colonnes. Pour un.csvfichier, il s'agit d'une simple virgule.headsepest 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.pagesizeest 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'headerligne, 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".trimspooldéfini suronsupprime 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. numwidthest 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.