IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Les rapports SQL
        Comment activer / désactiver le retour sur l'état d'une requête ?
        Comment désactiver / activer le nom des colonnes à l'affichage d'une requête ?
        Comment modifier le nombre de lignes par page au résultat d'un requête ?
        Comment modifier le nombre de caractères par ligne au résultat d'un requête ?
        Comment définir la taille d'une colonne de type VARCHAR2 à l'affichage d'un requête ?
        Comment afficher un titre en début de chaque page de mon résultat de requête ?
        Comment créer des rapports HTML ?



Comment activer / désactiver le retour sur l'état d'une requête ?
auteurs : Emmanuel Lecoester, jsd03
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 ?
auteurs : 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 :

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
        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
            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 :

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                                                          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 :

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;
/
 
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.



Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

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 © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.