La Faq Sqlplus

download La Faq Sqlplus

of 20

description

frequency asked questions about SQL*PLUS (Oracle)

Transcript of La Faq Sqlplus

  • La FAQ SQL*Plus

    Date de publication : 11 juin 2009

    Dernire mise jour : 4 dcembre 2009

    Cette F.A.Q. a t ralise partir des connaissances de membres deDeveloppez.com en vue de rpondre des questions frquemment posespar les utilisateurs.

    Elle traite exclusivement des questions relatives SQL*Plus.

    Nous esprons que cette F.A.Q. saura rpondre un maximum de vosquestions. 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage est dpose la SACD.

    http://oracle.developpez.com/faq/faq-sqlplus/

    1. Environnement de travail (15) ................................................................................................................................42. Excution de requtes (10) ..................................................................................................................................113. 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage est dpose la SACD.

    http://oracle.developpez.com/faq/faq-sqlplus/

    Sommaire > Environnement de travailQuelles sont les variables d'environnement ncessaires pour lancer SQL*Plus ?

    Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterLes 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/11gR1export ORACLE_SID=orclexport PATH=$PATH:/oracle01/11gR1/bin

    Pour un serveur Windows :

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

    L'initialisation de la variable $PATH sous Unix ou %path% sous Windows vous permettra d'accderdirectement 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 LecoesterAllez dans le dossier $ORACLE_HOME/bin ou vrifiez que ce rpertoire fait partie de votre PATH (dans cecas vous pourrez utiliser directement la commande sqlplus).

    Ici se trouve l'excutable sqlplus. Vous pouvez lancer directement sqlplus, on vous demandera un login etmot de passe pour vous connecter votre base. Par contre cette mthode ne vous permettra pas de vousconnecter 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 directementdans le prompte SQL>

    sqlplus /nolog

    Ensuite pour se connecter un compte on utilise la mme syntaxe que prcdemment mais avec lacommande 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 dfinitpar 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 LecoesterPour 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 LecoesterIl 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 defineet 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 LecoesterOn 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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". Parexemple :

    SQL> SET sqlprompt &_USER@&_CONNECT_IDENTIFIER>

    Notez que si vous changez d'utilisateur, le prompt restera comme vous l'avezdfinit prcdement.

    Comment afficher l'heure dans le prompt SQL*Plus ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterCette 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 dbutde 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 LecoesterUtiliser 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 LecoesterPour 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 djsqlplus SYS/password @helpbld.sql --cre les tables d'aidesqlplus 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 LecoesterIl suffit d'utiliser tout simplement la commande suivante :

    SQL> password

    Exemple :

    SQL> conn scottEnter password:Connecte.SQL> passwordModification de mot de passe pour SCOTTAncien mot de passe :Nouveau mot de passe :Ressaisir le nouveau mot de passe :Mot de passe modifieSQL>

    Comment excuter une commande systme depuis SQL*Plus ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterDepuis le prompt SQL>, il est possible d'excuter une commande propre au systme d'exploitation l'aidede ces 3 commandes :

    SQL> ! commandeUnixSQL> $ commandeWindowsSQL> host commandeUnixOuWindows

    Exemple (pour un serveur Unix) :

    SQL> ! datelun jan 10 10:29:06 CEST 2009SQL>

    Exemple (pour un serveur Windows) :

    SQL> $ echo developpez.comdeveloppez.comSQL>

  • 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 entapant 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> hostMicrosoft Windows XP [version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\Jean-Sbastien>echo developpez.comdeveloppez.com C:\Documents and Settings\Jean-Sbastien>dateLa date du jour est : 02/06/2009Entrez 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 LecoesterCette 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 LecoesterIl peut tre ncessaire d'exporter les variables d'environnement afin de les rutiliser sur une autre basede 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 LecoesterPour faire cela, il faut utiliser la commande suivante :

    SQL> SHOW variableName

    Exemple pour afficher le nombre de ligne par page :

    SQL> SHOW pagesizepagesize 14

    Pour afficher toutes les variables :

    SQL> SHOW all

    Comment quitter correctement SQL*Plus ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterPour 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. Enspcifiant la suite, COMMIT ou ROLLBACK.

    Pour information, la commande DISCONNECT permet uniquement de fermer lasession de l'utilisateur courant pour permettre par exemple de se connecter avecun 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage est dpose la SACD.

    http://oracle.developpez.com/faq/faq-sqlplus/

    Sommaire > Excution de requtesComment excuter la dernire commande tape ?

    Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterUtilisez 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 LecoesterPrenons la requte suivante afin d'ajouter une nouvelle colonne dans la requte :

    SQL> SELECT EMPLOYEE_ID, FIRST_NAME2 FROM employees

    Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premireligne)

    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_NAME2 FROM employees

    Comment sauvegarder une session de travail ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterIl 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 ONSQL> SELECT sysdate FROM dual; SYSDATE--------15/05/09 Ecoul : 00 :00 :00.04SQL>

    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 deson numro. La dernire est prcde d'une toile.

    Exemple :

    SQL> list1* select * from accountSQL>

    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 LecoesterIl 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 unefois le script termin.

    Comment excuter un fichier .sql depuis le prompt SQL*Plus ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterIl 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 LecoesterPour 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 pourrezditer 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 dansl'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 LecoesterLe & 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 substitutionavec la commande suivante :

    SQL> SET DEFINE @

    Explication : dans ce cas on ne prend plus le & commercial pour dfinir une variable de substitution maisun arobase.

    Comment changer une chaine par une autre dans une requte ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterPrenons la requte suivante afin de modifier la chaine de caractre 'EMPLOYEE_ID' par 'DEPARTEMENT_ID'

    SQL> SELECT EMPLOYEE_ID, FIRST_NAME2 FROM employees

    Maintenant il faut slectionner la ligne voulue en tapant le numro de ligne (ici 1 pour modifier la premireligne)

    SQL> 1

    Ensuite il suffit de taper la commande "c" (pour CHANGE) de la chaine de caractre modifier ainsi quela nouvelle chaine.

    SQL> c /EMPLOYEE_ID/DEPARTEMENT_ID

    Maintenant la requte va tre la suivante :

    SQL> SELECT DEPARTEMENT_ID, FIRST_NAME2 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage est dpose la SACD.

    http://oracle.developpez.com/faq/faq-sqlplus/

    Sommaire > Les rapports SQLComment activer / dsactiver le retour sur l'tat d'une requte ?

    Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterQuand vous excutez une requte du type INSERT un message du type Une ligne ajoute s'affiche, ouencore 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 renvoieun rapport

    Exemple :

    SQL> set feedback 3

    Maintenant si on prend l'exemple suivant, SQL*Plus ne renverra pas de rapport mais juste le contenu dela requte

    SQL> select last_name2 from employees3 where rownum < 3; LAST_NAME-------------------------AbelAnde

    Maintenant si on change la valeur du feedback 2, on obtient le rsultat suivant :

    SQL> select last_name2 from employees3 where rownum < 3; LAST_NAME-------------------------AbelAnde 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 LecoesterPour dsactiver l'affichage du nom des colonnes, et n'avoir que les donnes d'une requte, il suffit de taperla 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 EllenAnde SundarAtkinson Mozhe

    Comment modifier le nombre de lignes par page au rsultat d'un requte ?Auteurs : jsd03 - orafrance - umarus - Vincent Rogier - Pomalaix - Goldoz - Antoun - Emmanuel LecoesterPar 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 lignespar 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 LecoesterPar dfaut le nombre de caractres par lignes est de 72. Pour modifier ce nombre tapez la commandesuivante :

    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 LecoesterPrenons pour exemple la requte suivante :

    SQL> SELECT employee_id, first_name, last_name 2 FROM employees3 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 etrenvoyer les autres la lignes.

    On voit que pour l'employ 103, son prnom se trouve maintenant sur 2 ligne car il contient plus de 8caractres.

    Cette fonction est trs utile quand on a, par exemple, une colonne de type VARCHAR2(200) et que l'on saitque la longueur maximum que l'on peut trouver dans cette colonne est 50, on va donc spcifier A50 pourviter 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 LecoesterPour 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage 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 dujour 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 LecoesterIl 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 "Rapport 1 th {background-color: #7FCF00;} td {background-color:#FFEE9F;}" BODY ">Mon premier rapport

  • 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 prsentationconstitue 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'autorisationexpresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cettepage est dpose la SACD.

    http://oracle.developpez.com/faq/faq-sqlplus/

    SET markup html off spool offspool 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 &, >, ?Comment afficher l'heure dans le prompt SQL*Plus ?Comment savoir avec quel compte je suis connect SQL*Plus ?Comment activer / utiliser l'aide SQL*Plus ?Comment changer le mot de passe de l'utilisateur courant ?Comment excuter une commande systme depuis SQL*Plus ?Comment activer l'affichage du buffer pour la session SQL*Plus en cours?Comment exporter toutes les variables d'environnements de SQL*Plus ?Comment afficher la valeur d'une variable d'environnement de SQL*Plus ?Comment quitter correctement SQL*Plus ?

    Excution de requtesComment excuter la dernire commande tape ?Comment complter une ligne d'une requte ?Comment sauvegarder une session de travail ?Comment afficher le temps d'excution d'une requte ?Comment afficher le contenu du Buffer ?Comment excuter un script *.sql sans ouvrir SQL*Plus ?Comment excuter un fichier .sql depuis le prompt SQL*Plus ?Comment diter une requte dans un diteur de texte ?Comment dsactiver le caractre & commercial dans une requte ?Comment changer une chaine par une autre dans une requte ?

    Les rapports SQLComment activer / dsactiver le retour sur l'tat d'une requte ?Comment dsactiver / activer le nom des colonnes l'affichage d'une requte ?Comment modifier le nombre de lignes par page au rsultat d'un requte ?Comment modifier le nombre de caractres par ligne au rsultat d'un requte ?Comment dfinir la taille d'une colonne de type VARCHAR2 l'affichage d'un requte ?Comment afficher un titre en dbut de chaque page de mon rsultat de requte ?Comment crer des rapports HTML ?