Vous êtes sur la page 1sur 20
FAQ SQL*Plus Date de publication : 11 juin 2009 Dernière mise à jour : 4

FAQ SQL*Plus

Date de publication : 11 juin 2009

Dernière mise à jour : 4 décembre 2009

Cette F.A.Q. a été réalisée à partir des connaissances de membres de Developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs.

Elle traite exclusivement des questions relatives à SQL*Plus.

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe de Developpez.com.

FAQ SQL*Plus

FAQ SQL*Plus

1. Environnement de travail (15)

4

2. Exécution de requêtes (10)

11

3. Les rapports SQL (7)

15

FAQ SQL*Plus

FAQ SQL*Plus

Sommaire > Environnement de travail

Quelles sont les variables d'environnement nécessaires pour lancer SQL*Plus ?

Auteur : jsd03

Les variables suivantes sont nécessaires :

• ORACLE_HOME : chemin vers l'installation Oracle

• PATH : chemin vers les binaires d'Oracle

• ORACLE_SID : nom de l'instance qui sera utilisée par SQL*Plus (cette variable n'est pas obligatoire car on peut spécifier se paramètre dans la chaine de connexion)

D'où par exemple le résultat suivant (pour un serveur Unix) :

• $ORACLE_HOME : /oracle01/11gR1

• $PATH : $PATH:/oracle01/11gR1/bin

• $ORACLE_SID : orcl (cette variable n'est pas obligatoire car on peut spécifier se paramètre dans la chaine de connexion)

Pour définir ces variables simplement, lancez une invite de commande et tapez les commandes suivantes

Pour un serveur Unix :

export ORACLE_HOME=/oracle01/11gR1 export ORACLE_SID=orcl export PATH=$PATH:/oracle01/11gR1/bin

Pour un serveur Windows :

set %ORACLE_HOME%=c:\oracle01\11gR1 set %ORACLE_SID%=orcl set %PATH%=%PATH%;C:\oracle01\11gR1\bin

L'initialisation de la variable $PATH sous Unix ou %path% sous Windows vous permettra d'accéder directement à SQL*Plus sans aller dans le dossier des binaires d'Oracle

Comment se connecter à SQL*Plus ?

Auteur : jsd03

Allez dans le dossier $ORACLE_HOME/bin ou vérifiez que ce répertoire fait partie de votre PATH (dans ce cas vous pourrez utiliser directement la commande sqlplus).

Ici se trouve l'exécutable sqlplus. Vous pouvez lancer directement sqlplus, on vous demandera un login et mot de passe pour vous connecter à votre base. Par contre cette méthode ne vous permettra pas de vous connecter à une autre base que celle par défaut ou avec un compte de type SYSDBA ou SYSOPER.

C'est pour cela qu'il convient de spécifier des paramètres de connexion.

Voici la syntaxe pour ce connecter à SQL*Plus :

sqlplus (utilisateur[/mot_de_passe][@identifiant_BDD] | /) [AS SYSDBA | AS SYSOPER] | /NOLOG

FAQ SQL*Plus

FAQ SQL*Plus

Exemple pour se connecter avec l'utilisateur scott :

 

sqlplus scott/tiger

Exemple pour se connecter avec un compte SYSDBA

 

sqlplus sys/change_on_install AS SYSDBA

Pour se connecter avec le compte SYS :

 

sqlplus /

Vous pouvez également taper la commande suivante et spécifier les paramètres de connexion directement dans le prompte SQL>

 

sqlplus /nolog

Ensuite pour se connecter à un compte on utilise la même syntaxe que précédemment mais avec la commande CONNECT

 

SQL> connect scott/tigger

ou

SQL> connect sys/change_on_install AS SYSDBA

Toutes ces chaines de connexion vont se connecter sur le ORACLE_SID définit par défaut à

Toutes ces chaines de connexion vont se connecter sur le ORACLE_SID définit par défaut à moins de redéfinir cette variable d'environnement.

Comment récupérer sa version de SQL*Plus ?

Auteur : jsd03

Pour vérifier ou récupérer sa version de SQL*Plus, tapez la commande suivante :

sqlplus -V

Comment afficher les propriétés liées à SQL*Plus ?

Auteur : jsd03

Il suffit de taper la commande suivante :

SQL> define

Le résultat sera le suivant (mais peut différer par rapport à votre version de SQL*Plus) :

DEFINE _DATE

DEFINE _CONNECT_IDENTIFIER = "XE" (CHAR)

DEFINE _USER DEFINE _PRIVILEGE

= "30/03/09" (CHAR)

= "HR" (CHAR) = "" (CHAR)

FAQ SQL*Plus

FAQ SQL*Plus

 

DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)

DEFINE _EDITOR DEFINE _O_VERSION (CHAR) DEFINE _O_RELEASE

= "Notepad" (CHAR) = "Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production"

= "1002000100" (CHAR)

• _DATE : date courante

 

• _CONNECT_IDENTIFIER : identifiant de la base de données

• _USER : utilisateur avec lequel vous êtes connecté

• _PRIVILEGE : privilège utilisé pour se connecter (AS SYSDBA, AS SYSOPER)

• _SQLPLUS_RELEASE : numéro de version

• _EDITOR : éditeur qui sera utilisé pour modifier les requêtes

• _O_VERSION : nom de version de la base de données

• _O_RELEASE : numéro de version de la base de données

Vous pouvez évidement afficher séparément toutes ces valeurs en utilisant toujours la commande define et en spécifiant à la suite, la variable à afficher. Comme par exemple :

 

SQL> define _CONNECT_IDENTIFIER

Dans le même ordre d'idée, pour définir une nouvelle valeur de variable tapez la commande

 

SQL> define variableName=newValue

Exemple :

 
 

SQL> define _EDITOR="c:/Notepad++/Notepad++.exe"

Certaines variables sont en lecture seule.

Certaines variables sont en lecture seule.

Comment afficher le schéma et le nom de l'instance dans le prompt ?

Auteur : orafrance

Uniquement valide à partir de la version 10G d'Oracle.de l'instance dans le prompt ? Auteur : orafrance Modifiez le fichier $ORACLE_HOME/sqlplus/admin/glogin.sql

Modifiez le fichier $ORACLE_HOME/sqlplus/admin/glogin.sql (sous Unix) ou %oracle_home%/sqlplus/ admin/glogin.sql (sous Windows) et ajoutez :

SQL> SET sqlprompt "&_USER@&_CONNECT_IDENTIFIER> "

Comment changer le nom du prompt SQL> ?

Auteurs : jsd03 - Pomalaix

On peut parfois vouloir changer le nom du prompt SQL> pour une nouvelle valeur.

Pour ce faire, tapez la commande suivante :

SQL> SET sqlprompt "nouvelleValeur"

FAQ SQL*Plus

FAQ SQL*Plus

 

Exemple :

 

SQL> SET sqlprompt "jsd03 SQL> "

On peut aussi combiner cette commande pour afficher un prompt du genre "username"@"SID". Par exemple :

 

SQL> SET sqlprompt &_USER@&_CONNECT_IDENTIFIER>

Notez que si vous changez d'utilisateur, le prompt restera comme vous l'avez définit précédement.

Notez que si vous changez d'utilisateur, le prompt restera comme vous l'avez définit précédement.

Comment afficher l'heure dans le prompt SQL*Plus ?

Cette fonctionnalité permet de suivre en temps réel l'éxécution d'un script.

Pour afficher l'heure en début de prompt, il suffit de taper la commande suivante ou de la mettre en début de script sql :

SQL> set time on

Résultat :

20:36:20 SQL>

Comment savoir avec quel compte je suis connecté à SQL*Plus ?

Auteur : jsd03

Utiliser la commande suivante :

SQL> SHOW USER

Résultat (si mon nom d'utilisateur est JSD03) :

USER IS "JSD03"

Comment activer / utiliser l'aide SQL*Plus ?

Auteur : jsd03

Pour utiliser l'aide sur une commande, il suffit de taper HELP suivit de la commande. Exemple :

SQL> help SHOW

ou encore

SQL> help host

FAQ SQL*Plus

FAQ SQL*Plus

Il se peut néanmoins que cette aide ne soit pas installée. Pour cela, connectez allez dans le dossier $ORACLE_HOME/sqlplus/admin/help (sous Unix) ou %oracle_home%/sqlplus/admin/help (sous Windows) et lancer les commandes suivantes avec un compte SYS ou SYSTEM :

sqlplus SYS/password @helpdrop.sql --supprime les tables d'aide si elles existent déjà sqlplus SYS/password @helpbld.sql --créée les tables d'aide sqlplus SYS/password @helpus.sql --charge les données dans les tables d'aide

--créée les tables d'aide sqlplus SYS / password @helpus. sql --charge les données dans les tables
--créée les tables d'aide sqlplus SYS / password @helpus. sql --charge les données dans les tables
 

Comment changer le mot de passe de l'utilisateur courant ?

Auteur : umarus

Il suffit d'utiliser tout simplement la commande suivante :

 

SQL> password

Exemple :

SQL> conn scott Enter password:

Connecte. SQL> password Modification de mot de passe pour SCOTT Ancien mot de passe :

Nouveau mot de passe :

Ressaisir le nouveau mot de passe :

Mot de passe modifie SQL>

Comment exécuter une commande système depuis SQL*Plus ?

Auteur : jsd03

Depuis le prompt SQL>, il est possible d'exécuter une commande propre au système d'exploitation à l'aide de ces 3 commandes :

SQL> ! commandeUnix SQL> $ commandeWindows SQL> host commandeUnixOuWindows

Exemple (pour un serveur Unix) :

SQL> ! date lun jan 10 10:29:06 CEST 2009 SQL>

Exemple (pour un serveur Windows) :

SQL> $ echo developpez.com developpez.com SQL>

FAQ SQL*Plus

FAQ SQL*Plus

Il est possible de taper plusieurs commandes à la suite en spécifiant uniquement "!" ou "HOST" puis en tapant sur la touche "ENTREE". Le prompt SQL> va se fermer et vous aurez accès au prompt système. Pour revenir à votre session SQL, tapez EXIT.

Exemple :

 
 

SQL> $ Microsoft Windows XP [version 5.1.2600]

(C)

Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jean-Sébastien>exit

 

SQL> host

Microsoft Windows XP [version 5.1.2600]

(C)

Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jean-Sébastien>echo developpez.com developpez.com

C:\Documents and Settings\Jean-Sébastien>date La date du jour est : 02/06/2009 Entrez la nouvelle date : (jj-mm-aa)

C:\Documents and Settings\Jean-Sébastien>exit

SQL>

Comment activer l'affichage du buffer pour la session SQL*Plus en cours?

Auteur : Goldoz

Cette

DBMS_OUTPUT.PUT_LINE('TexteAafficher')

commande

permettra

notamment

d'afficher

le

retour

de

la

procédure

:

SQL> SET serveroutput ON

On peut également spécifier la taille du buffer de sortie en précisant de la manière suivant :

SQL> SET serveroutput ON size 1000000

Comment exporter toutes les variables d'environnements de SQL*Plus ?

Auteur : jsd03

Il peut être nécessaire d'exporter les variables d'environnement afin de les réutiliser sur une autre base de données.

Pour cela tapez la commande suivante :

SQL> store SET fileName

Exemple :

SQL> store SET "c:/sqlVariables.txt"

FAQ SQL*Plus

FAQ SQL*Plus

De la même manière, pour réimporter ces variables, tapez la commande :

SQL> @"c:/sqlVariables.txt"

De la même manière, pour réimporter ces variables, tapez la commande : SQL > @ "c:/sqlVariables.txt"
De la même manière, pour réimporter ces variables, tapez la commande : SQL > @ "c:/sqlVariables.txt"
De la même manière, pour réimporter ces variables, tapez la commande : SQL > @ "c:/sqlVariables.txt"

Comment afficher la valeur d'une variable d'environnement de SQL*Plus ?

Auteur : jsd03

Pour faire cela, il faut utiliser la commande suivante :

SQL> SHOW variableName

Exemple pour afficher le nombre de ligne par page :

SQL> SHOW pagesize pagesize 14

Pour afficher toutes les variables :

SQL> SHOW all

Comment quitter correctement SQL*Plus ?

Auteur : jsd03

Pour quitter correctement SQL*Plus, tapez la commande :

SQL> quit

ou

SQL> exit

On peut aussi spécifier d'appliquer les changements ou non aux requêtes précédemments exécutées. En spécifiant à la suite, COMMIT ou ROLLBACK.

exécutées. En spécifiant à la suite, COMMIT ou ROLLBACK. Pour information, la commande DISCONNECT permet uniquement

Pour information, la commande DISCONNECT permet uniquement de fermer la session de l'utilisateur courant pour permettre par exemple de se connecter avec un autre utilisateur.

FAQ SQL*Plus

FAQ SQL*Plus

Sommaire > Exécution de requêtes

Comment exécuter la dernière commande tapée ?

Auteur : jsd03

Utilisez le caractère slash "/" et appuyez sur la touche [Entrée].

SQL> /

Comment compléter une ligne d'une requête ?

Auteur : jsd03

Prenons la requête suivante afin d'ajouter une nouvelle colonne dans la requête :

SQL> SELECT EMPLOYEE_ID, FIRST_NAME

2 FROM employees

Maintenant il faut sélectionner la ligne voulue en tapant le numéro de ligne (ici 1 pour modifier la première ligne)

SQL> 1

Ensuite il suffit de taper la commande "a " (pour append) suivit de la nouvelle colonne ou autre

SQL> a , LAST_NAME

Maintenant la requête va être la suivante :

SQL> SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME

2 FROM employees

Comment sauvegarder une session de travail ?

Auteur : umarus

Il suffit d'utiliser la commande suivante :

SQL> SPOOL cheminVersLeFichier/nomDuFichier

Cette commande va enregistrer dans le fichier "nomDuFichier" les commandes exécutées par l'utilisateur, et les réponses d'Oracle.

Pour arrêter cette sauvegarde, utiliser la commande suivante :

FAQ SQL*Plus

FAQ SQL*Plus

SQL> SPOOL OFF

SQL > SPOOL OFF
SQL > SPOOL OFF
SQL > SPOOL OFF

Comment afficher le temps d'exécution d'une requête ?

Auteur : Vincent Rogier

SQL> SET TIMI[ING] ON/OFF

Exemple :

SQL> SET timing ON SQL> SELECT sysdate FROM dual;

SYSDATE

--------

15/05/09

Ecoulé : 00 :00 :00.04 SQL>

Comment afficher le contenu du Buffer ?

Auteur : umarus

SQL> list

La commande LIST (abréviation : L) permet d'afficher le contenu du Buffer. Chaque ligne est précédée de son numéro. La dernière est précédée d'une étoile.

Exemple :

SQL> list 1* select * from account SQL>

On peut également utiliser le point virgule suivit de la touche [Entrée] qui donne le même résultat.

Comment exécuter un script *.sql sans ouvrir SQL*Plus ?

Auteur : jsd03

Il vous suffit de combiner les commandes de connexion et d'ajouter à la suite < Fichier.SQL.

Exemple :

sqlplus scott/tigger < "c:/script.sql"

ou

sqlplus scott/tigger @"c:/script.sql"

ou encore (suivant le compte)

FAQ SQL*Plus

FAQ SQL*Plus

sqlplus / @ "c:/script.sql" Le script "script.sql" sera exécuté avec le compte courant et rendra

sqlplus / @"c:/script.sql"

Le script "script.sql" sera exécuté avec le compte courant et rendra la main au système d'exploitation une fois le script terminé.

Comment exécuter un fichier .sql depuis le prompt SQL*Plus ?

Auteur : umarus

Il suffit d'utiliser la commande suivante :

SQL> @cheminVersLeFichier/nomDuFichier

Exemple :

SQL> @/home/oracle/scripts/CreateSchema.sql

Comment éditer une requête dans un éditeur de texte ?

Auteurs : Antoun - jsd03

Pour commencer, vérifier la valeur de la variable _EDITOR avec la commande suivante :

SQL> DEFINE _EDITOR

Si le retour est correct et renvoie par exemple NOTEPAD ou VI ou tout autre éditeur de texte, vous pourrez éditer vos requêtes SQL sinon définissez la variable _EDITOR pour la faire pointer vers un éditeur de texte. Comme ceci :

SQL> DEFINE _EDITOR="C:/Program Files/Notepad++/notepad++.exe"

Maintenant, il suffit de taper la commande ED (alias EDIT) pour éditer la dernière requête du buffer dans l'éditeur de texte. Ce qui est plus aisé que le prompt SQL>.

SQL> ed

Une fois le fichier fermé, la nouvelle requête s'affiche à l'écran mais ne s'exécute pas. Pour le faire tapez "/".

Comment désactiver le caractère & commercial dans une requête ?

Auteur : jsd03

Le & commercial est le marqueur par défaut qui indique que le mot qui suit est une variable de substitution. Il permet de demander à un utilisateur une nouvelle valeur via un prompt.

Pour désactiver cette fonctionnalité, tapez la commande suivante (suivant votre version d'Oracle) :

SQL> SET DEFINE OFF

ou

FAQ SQL*Plus

FAQ SQL*Plus

 

SQL> SET SCAN OFF

On peut aussi choisir une autre variable pour définir que le nom qui suit est une variable de substitution avec la commande suivante :

 

SQL> SET DEFINE @

Explication : dans ce cas on ne prend plus le & commercial pour définir une variable de substitution mais un arobase.

Comment changer une chaine par une autre dans une requête ?

Auteur : jsd03

Prenons la requête suivante afin de modifier la chaine de caractère 'EMPLOYEE_ID' par 'DEPARTEMENT_ID'

SQL> SELECT EMPLOYEE_ID, FIRST_NAME

2 FROM employees

Maintenant il faut sélectionner la ligne voulue en tapant le numéro de ligne (ici 1 pour modifier la première ligne)

SQL> 1

Ensuite il suffit de taper la commande "c" (pour CHANGE) de la chaine de caractère à modifier ainsi que la nouvelle chaine.

SQL> c /EMPLOYEE_ID/DEPARTEMENT_ID

Maintenant la requête va être la suivante :

SQL> SELECT DEPARTEMENT_ID, FIRST_NAME

2 FROM employees

FAQ SQL*Plus

FAQ SQL*Plus

Sommaire > Les rapports SQL

 

Comment activer / désactiver le retour sur l'état d'une requête ?

Quand vous exécutez une requête du type INSERT un message du type Une ligne ajoutée s'affiche, ou encore quand vous créé une procédure Procédure créée.

Pour désactivé ce retour, vous pouvez utiliser la commande suivante :

 

SQL> set feedback off

De même pour le réactiver :

 

SQL> set feedback on

On peut également spécifier un nombre d'occurences après lesquels on souhaite que SQL*Plus renvoie un rapport

Exemple :

 
 

SQL> set feedback 3

Maintenant si on prend l'exemple suivant, SQL*Plus ne renverra pas de rapport mais juste le contenu de la requête

 

SQL> select last_name

2 from employees

3 where rownum < 3;

 

LAST_NAME

-------------------------

Abel

Ande

Maintenant si on change la valeur du feedback à 2, on obtient le résultat suivant :

 

SQL> select last_name

2 from employees

3 where rownum < 3;

 

LAST_NAME

-------------------------

Abel

Ande

2

ligne(s) sélectionnée(s).

Comment désactiver / activer le nom des colonnes à l'affichage d'une requête ?

Pour désactiver l'affichage du nom des colonnes, et n'avoir que les données d'une requête, il suffit de taper la commande suivante :

FAQ SQL*Plus

FAQ SQL*Plus

 

SQL> set heading off

Au contraire, pour réactiver l'affichage du nom des colonnes :

 

SQL> set heading on

Exemple avec le nom des colonnes désactivé :

 

SQL> select last_name, first_name

2 from employees

3 where rownum < 4;

Abel

Ellen

Ande

Sundar

Atkinson

Mozhe

 

Comment modifier le nombre de lignes par page au résultat d'un requête ?

Auteur : jsd03

 

Par défaut le nombre de lignes affichées par page est 11.

Exemple :

 
 

EMPLOYEE_ID FIRST_NAME

LAST_NAME

----------- -------------------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexander

Hunold

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

109 Daniel

Faviet

110 John

Chen

EMPLOYEE_ID FIRST_NAME

LAST_NAME

----------- -------------------- -------------------------

111 Ismael

Sciarra

112 Jose Manuel

Urman

113 Luis

Popp

114 Den

Raphaely

Pour modifier cette valeur il suffit de taper la commande suivante pour afficher par exemple 100 lignes par page :

 

SQL> SET pagesize 100

Résultat :

 
 

EMPLOYEE_ID FIRST_NAME

LAST_NAME

----------- -------------------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexander

Hunold

FAQ SQL*Plus

FAQ SQL*Plus

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

109 Daniel

Faviet

110 John

Chen

111 Ismael

Sciarra

112 Jose Manuel

Urman

113 Luis

Popp

114 Den

Raphaely

Comment modifier le nombre de caractères par ligne au résultat d'un requête ?

Auteur : jsd03

Par défaut le nombre de caractères par lignes est de 72. Pour modifier ce nombre tapez la commande suivante :

SQL> SET linesize 200

 

Comment définir la taille d'une colonne de type VARCHAR2 à l'affichage d'un requête ?

Auteur : jsd03

 

Prenons pour exemple la requête suivante :

 

SQL> SELECT employee_id, first_name, last_name

2 FROM employees

3 WHERE rownum < 10;

qui renvoit les lignes suivantes :

 
 

EMPLOYEE_ID FIRST_NAME

LAST_NAME

----------- -------------------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexander

Hunold

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

Je vais modifier la taille de la colonne first_name pour n'afficher que 8 caractères.

 

SQL> COLUMN first_name FORMAT A8;

 

Maintenant l'affichage sera :

 
 

EMPLOYEE_ID FIRST_NA LAST_NAME ----------- -------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexande Hunold

 
FAQ SQL*Plus

FAQ SQL*Plus

   

r

104 Ernst

Bruce

 

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

Explication : COLUMN first_name : on spécifie que l'on sélectionne la colonne first_name FORMAT A8 :

on définit que l'on souhaite modifier la longueur de la colonne pour ne prendre plus que 8 caractères et renvoyer les autres à la lignes.

On voit que pour l'employé 103, son prénom se trouve maintenant sur 2 ligne car il contient plus de 8 caractères.

Cette fonction est très utile quand on a, par exemple, une colonne de type VARCHAR2(200) et que l'on sait que la longueur maximum que l'on peut trouver dans cette colonne est 50, on va donc spécifier A50 pour éviter d'afficher des espaces superflus à l'affichage de la requête.

On peut aussi spécifier de tronquer la colonne une fois le nombre de caractère afficher au lieu de retourner à la ligne avec le mot TRUNCATE.

Exemple :

 
 

SQL> COLUMN first_name FORMAT A8 TRUNCATE;

Résultat :

 
 

EMPLOYEE_ID FIRST_NA LAST_NAME

----------- -------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexande Hunold

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

Notez que le prénom de l'employé 103 est tronqué.

Comment afficher un titre en début de chaque page de mon résultat de requête ?

Auteur : jsd03

Pour cela il faut utiliser la la fonction TTITLE :

SQL> TTITLE 'Mon titre'

Retour :

Ven. Juin

05

EMPLOYEE_ID FIRST_NAME

Mon titre

LAST_NAME

page

1

FAQ SQL*Plus

FAQ SQL*Plus

 

----------- -------------------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexander

Hunold

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

Comme vous pouvez le voir maintenant en haute de chaque page mon titre s'affiche ainsi que la date du jour et le numéro de la page.

Pour arrêter l'affichage du titre utilisez la commande suivante :

 

SQL> TTITLE OFF

Dans le même esprit on peut ajouter du texte à la fin d'une page :

 

BTITLE 'Fin de page'

Retour :

 
 

EMPLOYEE_ID FIRST_NAME

LAST_NAME

----------- -------------------- -------------------------

100 Steven

King

101 Neena

Kochhar

102 Lex

De Haan

103 Alexander

Hunold

104 Bruce

Ernst

105 David

Austin

106 Valli

Pataballa

107 Diana

Lorentz

108 Nancy

Greenberg

Fin de page

Comment créer des rapports HTML ?

Auteur : jsd03

Il est possible avec SQL*Plus de générer des fichiers HTML pour afficher le résultat d'une requête.

Pour se faire, créez un fichier avec le code suivant et exécutez le avec la commande

SQL> @generateReport.sql

SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON HEAD "<TITLE>Rapport 1</ TITLE> <style>th {background-color: #7FCF00;} td {background-color:#FFEE9F;}</style>" BODY "><div>Mon premier rapport</div" spool c:\rapport01.html

TTITLE "- Liste des employés -"

SELECT *

FROM employees;

/

FAQ SQL*Plus

FAQ SQL*Plus

 

SET markup html off spool off spool off

Explications :

 

• SET MARKUP HTML : active les rapports HTML

• SPOOL ON : active la sortie vers un fichier

• PREFORMAT OFF : désactive le préformatage du résultat de la requête

• ENTMAP ON : remplace les caractères spéciaux tel que &, >, <

par leur code html

• HEAD : définit le code à l'intérieur des balises <head></head> ; le code qui suit, sera inséré entre ces balise. On peut alors inclure des fichiers styles, du javascript

• BODY : définit les paramètres des balises body ; par exemple si j'avais mis

 

BODY " bgcolor='red' "

le fond de mon rapport aurait été en rouge. C'est pour cela que dans mon exemple j'ai d'abord fermé la balise <body> pour afficher un bloque <div> à la suite et que je n'ai pas terminé ma balise </div car SQL*Plus s'en chargera quand il génèrera le rapport.

• spool filename : créée le rapport dans le fichier qui suit

 

• TTITLE : définit le titre du rapport

• la requête

• set markup html off spool off spool off : on réinitialise toutes les variables SQL*Plus

Vous pourrez voir l'exemple de rapport créé en cliquant sur ce lien.