IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ SQL*PlusConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 32, dernière mise à jour : 26 juin 2009  Ajouter une question

 

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.

SommaireLes rapports SQL (7)
précédent sommaire
 

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 :

Code SQL : Sélectionner tout
SQL> set feedback off
De même pour le réactiver :

Code SQL : Sélectionner tout
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 :

Code SQL : Sélectionner tout
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

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
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 :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
SQL> select  last_name 
2 from employees 
3 where rownum < 3; 
  
LAST_NAME 
------------------------- 
Abel 
Ande 
  
2 ligne(s) sélectionnée(s).

Mis à jour le 26 juin 2009 Emmanuel Lecoester jsd03

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 :

Code SQL : Sélectionner tout
SQL> set heading off
Au contraire, pour réactiver l'affichage du nom des colonnes :

Code SQL : Sélectionner tout
SQL> set heading on
Exemple avec le nom des colonnes désactivé :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
SQL> select last_name, first_name  
2 from employees  
3 where rownum < 4; 
  
Abel                      Ellen 
Ande                      Sundar 
Atkinson                  Mozhe

Mis à jour le 26 juin 2009 Emmanuel Lecoester jsd03

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

Exemple :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 :

Code SQL : Sélectionner tout
SQL> SET pagesize 100
Résultat :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 
        111 Ismael               Sciarra 
        112 Jose Manuel          Urman 
        113 Luis                 Popp 
        114 Den                  Raphaely

Mis à jour le 14 mai 2009 jsd03

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

Code sql : Sélectionner tout
SQL> SET linesize 200

Mis à jour le 15 mai 2009 jsd03

Prenons pour exemple la requête suivante :

Code SQL : Sélectionner tout
1
2
3
SQL> SELECT employee_id, first_name, last_name  
2 FROM employees 
3 WHERE rownum < 10;
qui renvoit les lignes suivantes :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
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.

Code SQL : Sélectionner tout
SQL> COLUMN first_name FORMAT A8;
Maintenant l'affichage sera :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
EMPLOYEE_ID FIRST_NA LAST_NAME 
----------- -------- ------------------------- 
        100 Steven   King 
        101 Neena    Kochhar 
        102 Lex      De Haan 
        103 Alexande Hunold 
            r 
        104 Bruce    Ernst 
        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 :

Code SQL : Sélectionner tout
SQL> COLUMN first_name FORMAT A8 TRUNCATE;
Résultat :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
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é.

Mis à jour le 5 juin 2009 jsd03

Pour cela il faut utiliser la la fonction TTITLE :

Code SQL : Sélectionner tout
SQL> TTITLE 'Mon titre'
Retour :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Ven. Juin  05                                                          page    1 
  
                                   Mon titre 
  
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
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 :

Code SQL : Sélectionner tout
SQL> TTITLE OFF
Dans le même esprit on peut ajouter du texte à la fin d'une page :

Code SQL : Sélectionner tout
BTITLE 'Fin de page'
Retour :

Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
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

Mis à jour le 5 juin 2009 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

Code SQL : Sélectionner tout
SQL> @generateReport.sql
Code SQL : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
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; 
/ 
  
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

Code html : Sélectionner tout
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.

Mis à jour le 12 juin 2009 jsd03

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.