Dernire mise jour : 4 dcembre 2009 Cette F.A.Q. a t ralise partir des connaissances de membres de Developpez.com en vue de rpondre des questions frquemment poses par les utilisateurs. Elle traite exclusivement des questions relatives SQL*Plus. Nous esprons que cette F.A.Q. saura rpondre un maximum de vos questions. Nous vous souhaitons une bonne lecture. L'quipe de Developpez.com. Ont contribu cette FAQ : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester La FAQ SQL*Plus - 3 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ 1. Environnement de travail (15) ................................................................................................................................4 2. Excution de requtes (10) ..................................................................................................................................11 3. Les rapports SQL (7) ........................................................................................................................................... 15 La FAQ SQL*Plus - 4 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ Sommaire > Environnement de travail Quelles sont les variables d'environnement ncessaires pour lancer SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Les variables suivantes sont ncessaires : ORACLE_HOME : chemin vers l'installation Oracle PATH : chemin vers les binaires d'Oracle ORACLE_SID : nom de l'instance qui sera utilise par SQL*Plus (cette variable n'est pas obligatoire car on peut spcifier se paramtre dans la chaine de connexion) D'o par exemple le rsultat 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 spcifier se paramtre dans la chaine de connexion) Pour dfinir 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'accder directement SQL*Plus sans aller dans le dossier des binaires d'Oracle Comment se connecter SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Allez dans le dossier $ORACLE_HOME/bin ou vrifiez que ce rpertoire fait partie de votre PATH (dans ce cas vous pourrez utiliser directement la commande sqlplus). Ici se trouve l'excutable sqlplus. Vous pouvez lancer directement sqlplus, on vous demandera un login et mot de passe pour vous connecter votre base. Par contre cette mthode ne vous permettra pas de vous connecter une autre base que celle par dfaut ou avec un compte de type SYSDBA ou SYSOPER. C'est pour cela qu'il convient de spcifier des paramtres de connexion. Voici la syntaxe pour ce connecter SQL*Plus : sqlplus (utilisateur[/mot_de_passe][@identifiant_BDD] | /) [AS SYSDBA | AS SYSOPER] | /NOLOG La FAQ SQL*Plus - 5 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ 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 spcifier les paramtres de connexion directement dans le prompte SQL> sqlplus /nolog Ensuite pour se connecter un compte on utilise la mme syntaxe que prcdemment 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 dfinit par dfaut moins de redfinir cette variable d'environnement. Comment rcuprer sa version de SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Pour vrifier ou rcuprer sa version de SQL*Plus, tapez la commande suivante : sqlplus -V Comment afficher les proprits lies SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Il suffit de taper la commande suivante : SQL> define Le rsultat sera le suivant (mais peut diffrer par rapport votre version de SQL*Plus) : DEFINE _DATE = "30/03/09" (CHAR) DEFINE _CONNECT_IDENTIFIER = "XE" (CHAR) DEFINE _USER = "HR" (CHAR) DEFINE _PRIVILEGE = "" (CHAR) La FAQ SQL*Plus - 6 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR) DEFINE _EDITOR = "Notepad" (CHAR) DEFINE _O_VERSION = "Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production" (CHAR) DEFINE _O_RELEASE = "1002000100" (CHAR) _DATE : date courante _CONNECT_IDENTIFIER : identifiant de la base de donnes _USER : utilisateur avec lequel vous tes connect _PRIVILEGE : privilge utilis pour se connecter (AS SYSDBA, AS SYSOPER) _SQLPLUS_RELEASE : numro de version _EDITOR : diteur qui sera utilis pour modifier les requtes _O_VERSION : nom de version de la base de donnes _O_RELEASE : numro de version de la base de donnes Vous pouvez videment afficher sparment toutes ces valeurs en utilisant toujours la commande define et en spcifiant la suite, la variable afficher. Comme par exemple : SQL> define _CONNECT_IDENTIFIER Dans le mme ordre d'ide, pour dfinir 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. Comment afficher le schma et le nom de l'instance dans le prompt ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Uniquement valide partir de la version 10G d'Oracle. 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 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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" La FAQ SQL*Plus - 7 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ 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 dfinit prcdement. Comment afficher l'heure dans le prompt SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Cette fonctionnalit permet de suivre en temps rel l'xcution d'un script. Pour afficher l'heure en dbut de prompt, il suffit de taper la commande suivante ou de la mettre en dbut de script sql : SQL> set time on Rsultat : 20:36:20 SQL> Comment savoir avec quel compte je suis connect SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Utiliser la commande suivante : SQL> SHOW USER Rsultat (si mon nom d'utilisateur est JSD03) : USER IS "JSD03" Comment activer / utiliser l'aide SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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 La FAQ SQL*Plus - 8 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ Il se peut nanmoins que cette aide ne soit pas installe. 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 dj sqlplus SYS/password @helpbld.sql --cre les tables d'aide sqlplus SYS/password @helpus.sql --charge les donnes dans les tables d'aide Comment changer le mot de passe de l'utilisateur courant ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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 excuter une commande systme depuis SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Depuis le prompt SQL>, il est possible d'excuter une commande propre au systme 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> La FAQ SQL*Plus - 9 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ Il est possible de taper plusieurs commandes la suite en spcifiant uniquement "!" ou "HOST" puis en tapant sur la touche "ENTREE". Le prompt SQL> va se fermer et vous aurez accs au prompt systme. 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-Sbastien>exit
SQL> host Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Jean-Sbastien>echo developpez.com developpez.com
C:\Documents and Settings\Jean-Sbastien>date La date du jour est : 02/06/2009 Entrez la nouvelle date : (jj-mm-aa)
C:\Documents and Settings\Jean-Sbastien>exit
SQL> Comment activer l'affichage du buffer pour la session SQL*Plus en cours? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Cette commande permettra notamment d'afficher le retour de la procdure : DBMS_OUTPUT.PUT_LINE('TexteAafficher') SQL> SET serveroutput ON On peut galement spcifier la taille du buffer de sortie en prcisant de la manire suivant : SQL> SET serveroutput ON size 1000000 Comment exporter toutes les variables d'environnements de SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Il peut tre ncessaire d'exporter les variables d'environnement afin de les rutiliser sur une autre base de donnes. Pour cela tapez la commande suivante : SQL> store SET fileName Exemple : SQL> store SET "c:/sqlVariables.txt" La FAQ SQL*Plus - 10 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ De la mme manire, pour rimporter ces variables, tapez la commande : SQL> @"c:/sqlVariables.txt" Comment afficher la valeur d'une variable d'environnement de SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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 ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Pour quitter correctement SQL*Plus, tapez la commande : SQL> quit ou SQL> exit On peut aussi spcifier d'appliquer les changements ou non aux requtes prcdemments excutes. En spcifiant la suite, COMMIT ou ROLLBACK. 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. La FAQ SQL*Plus - 11 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ Sommaire > Excution de requtes Comment excuter la dernire commande tape ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Utilisez le caractre slash "/" et appuyez sur la touche [Entre]. SQL> / Comment complter une ligne d'une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Prenons la requte suivante afin d'ajouter une nouvelle colonne dans la requte : SQL> SELECT EMPLOYEE_ID, FIRST_NAME 2 FROM employees Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premire 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 requte va tre la suivante : SQL> SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME 2 FROM employees Comment sauvegarder une session de travail ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Il suffit d'utiliser la commande suivante : SQL> SPOOL cheminVersLeFichier/nomDuFichier Cette commande va enregistrer dans le fichier "nomDuFichier" les commandes excutes par l'utilisateur, et les rponses d'Oracle. Pour arrter cette sauvegarde, utiliser la commande suivante : La FAQ SQL*Plus - 12 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ SQL> SPOOL OFF Comment afficher le temps d'excution d'une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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 ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester SQL> list La commande LIST (abrviation : L) permet d'afficher le contenu du Buffer. Chaque ligne est prcde de son numro. La dernire est prcde d'une toile. Exemple : SQL> list 1* select * from account SQL> On peut galement utiliser le point virgule suivit de la touche [Entre] qui donne le mme rsultat. Comment excuter un script *.sql sans ouvrir SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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) La FAQ SQL*Plus - 13 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ sqlplus / @"c:/script.sql" Le script "script.sql" sera excut avec le compte courant et rendra la main au systme d'exploitation une fois le script termin. Comment excuter un fichier .sql depuis le prompt SQL*Plus ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Il suffit d'utiliser la commande suivante : SQL> @cheminVersLeFichier/nomDuFichier Exemple : SQL> @/home/oracle/scripts/CreateSchema.sql Comment diter une requte dans un diteur de texte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Pour commencer, vrifier 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 requtes SQL sinon dfinissez 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 dernire requte 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 requte s'affiche l'cran mais ne s'excute pas. Pour le faire tapez "/". Comment dsactiver le caractre & commercial dans une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Le & commercial est le marqueur par dfaut 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 dsactiver cette fonctionnalit, tapez la commande suivante (suivant votre version d'Oracle) : SQL> SET DEFINE OFF ou La FAQ SQL*Plus - 14 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ SQL> SET SCAN OFF On peut aussi choisir une autre variable pour dfinir 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 dfinir une variable de substitution mais un arobase. Comment changer une chaine par une autre dans une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Prenons la requte suivante afin de modifier la chaine de caractre 'EMPLOYEE_ID' par 'DEPARTEMENT_ID' SQL> SELECT EMPLOYEE_ID, FIRST_NAME 2 FROM employees Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premire ligne) SQL> 1 Ensuite il suffit de taper la commande "c" (pour CHANGE) de la chaine de caractre modifier ainsi que la nouvelle chaine. SQL> c /EMPLOYEE_ID/DEPARTEMENT_ID Maintenant la requte va tre la suivante : SQL> SELECT DEPARTEMENT_ID, FIRST_NAME 2 FROM employees La FAQ SQL*Plus - 15 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ Sommaire > Les rapports SQL Comment activer / dsactiver le retour sur l'tat d'une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Quand vous excutez une requte du type INSERT un message du type Une ligne ajoute s'affiche, ou encore quand vous cr une procdure Procdure cre. Pour dsactiv ce retour, vous pouvez utiliser la commande suivante : SQL> set feedback off De mme pour le ractiver : SQL> set feedback on On peut galement spcifier un nombre d'occurences aprs 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 requte 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 rsultat suivant : SQL> select last_name 2 from employees 3 where rownum < 3;
LAST_NAME ------------------------- Abel Ande
2 ligne(s) slectionne(s). Comment dsactiver / activer le nom des colonnes l'affichage d'une requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Pour dsactiver l'affichage du nom des colonnes, et n'avoir que les donnes d'une requte, il suffit de taper la commande suivante : La FAQ SQL*Plus - 16 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ SQL> set heading off Au contraire, pour ractiver l'affichage du nom des colonnes : SQL> set heading on Exemple avec le nom des colonnes dsactiv : 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 rsultat d'un requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Par dfaut le nombre de lignes affiches 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 Rsultat : EMPLOYEE_ID FIRST_NAME LAST_NAME ----------- -------------------- ------------------------- 100 Steven King 101 Neena Kochhar 102 Lex De Haan 103 Alexander Hunold La FAQ SQL*Plus - 17 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ 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 caractres par ligne au rsultat d'un requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Par dfaut le nombre de caractres par lignes est de 72. Pour modifier ce nombre tapez la commande suivante : SQL> SET linesize 200 Comment dfinir la taille d'une colonne de type VARCHAR2 l'affichage d'un requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Prenons pour exemple la requte 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 caractres. 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 La FAQ SQL*Plus - 18 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ r 104 Bruce Ernst 105 David Austin 106 Valli Pataballa 107 Diana Lorentz 108 Nancy Greenberg Explication : COLUMN first_name : on spcifie que l'on slectionne la colonne first_name FORMAT A8 : on dfinit que l'on souhaite modifier la longueur de la colonne pour ne prendre plus que 8 caractres et renvoyer les autres la lignes. On voit que pour l'employ 103, son prnom se trouve maintenant sur 2 ligne car il contient plus de 8 caractres. Cette fonction est trs 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 spcifier A50 pour viter d'afficher des espaces superflus l'affichage de la requte. On peut aussi spcifier de tronquer la colonne une fois le nombre de caractre afficher au lieu de retourner la ligne avec le mot TRUNCATE. Exemple : SQL> COLUMN first_name FORMAT A8 TRUNCATE; Rsultat : 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 prnom de l'employ 103 est tronqu. Comment afficher un titre en dbut de chaque page de mon rsultat de requte ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester 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 La FAQ SQL*Plus - 19 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ ----------- -------------------- ------------------------- 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 numro de la page. Pour arrter l'affichage du titre utilisez la commande suivante : SQL> TTITLE OFF Dans le mme 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 crer des rapports HTML ? Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel Lecoester Il est possible avec SQL*Plus de gnrer des fichiers HTML pour afficher le rsultat d'une requte. Pour se faire, crez un fichier avec le code suivant et excutez 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 employs -"
SELECT * FROM employees; /
La FAQ SQL*Plus - 20 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme 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 intrts. Cette page est dpose la SACD. http://oracle.developpez.com/faq/faq-sqlplus/ 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 : dsactive le prformatage du rsultat de la requte ENTMAP ON : remplace les caractres spciaux tel que &, >, <... par leur code html HEAD : dfinit le code l'intrieur des balises <head></head> ; le code qui suit, sera insr entre ces balise. On peut alors inclure des fichiers styles, du javascript... BODY : dfinit les paramtres 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 gnrera le rapport. spool filename : cre le rapport dans le fichier qui suit TTITLE : dfinit le titre du rapport la requte set markup html off spool off spool off : on rinitialise toutes les variables SQL*Plus Vous pourrez voir l'exemple de rapport cr en cliquant sur ce lien.