Manuel D utilisation de SQL*Plus 1 Lancer Oracle et SQL Plus se déconnecter, puis sortir Pour lancer le client Oracle, aller dans démarrer et faire : Oracle - OraHome 10g / Application Development / SQL Plus Dans la boîte Log On, entrer votre username et le mot de passe. Entrer orcl dans Host string (si vous avez plus qu une base de données). Appuyer sur OK (ne pas faire return). Vous verrez alors l invite de SQL Plus : SQL*Plus: Release 10.2.0.1.0 - Production on Ven. Janv. 25 10:02:14 2013 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> Voilà l interface. Pour se déconnecter de votre compte sans quitter SQL*Plus, faire disconnect Déconnecté de Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Pour se reconnecter, taper connect et entrer votre nom et mot de passe. Vous êtes de nouveau connecté à la base de données. Entrez le nom utilisateur : system Entrez le mot de passe : ****** Connecté. Pour sortir, faire exit. 2 Changer le mot de passe Changez votre mot de passe avec la commande password. Tapez password et appuyer sur return. Répondez ensuite aux questions. Modification de mot de passe pour SYSTEM Ancien mot de passe : ****** Nouveau mot de passe : ****** Ressaisir le nouveau mot de passe : ****** Mot de passe modifié 1
3 Ma première requête Pour obtenir la liste des tables de votre compte, tapez la commande suivante : Select * from tab ; Ne pas oublier le «;». Il signale à SQL Plus la fin de la requête et en déclenche l exécution. SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT EMP BONUS SALGRADE 4 Les méta-données sur les tables Pour voir les méta-données sur une table crée, écrire desc (describe) nom_table ; Cette commande vous sera souvent utile. Ne l oubliez pas 5 Editeur SQL*Plus NB. Se connecter avec le compte scott/tiger pour exécuter les commandes. 5.1. Buffer de commande SQLPLUS traite différemment les ordres qui lui sont propres et ceux qui appartiennent au langage SQL : - les commandes SQL sont mémorisées dans un tampon. Elles ne sont exécutées que si la commande est terminée par un point virgule, - les commandes non SQL ajoutées par SQLPLUS sont exécutées dès que l'on a frappé la touche RETURN. Pour laisser la commande SQL dans le buffer et revenir au prompt SQL> sans exécuter la commande, il suffit de laisser la dernière ligne blanche. En effet, tant qu'on n'a pas terminé sa commande par un point virgule ou une ligne vierge, SQLPLUS demande des lignes supplémentaires (et le prompt est alors remplacé par le numéro de ligne). Cette mise en buffer des commandes SQL permet de rappeler la dernière commande pour l'exécuter à nouveau avec la commande RUN, l'éditer ou la sauvegarder dans un fichier. Par exemple, SQL> select 3 from 4 dept 5 1 select 2
3 from 4* dept DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 PERATIONS BOSTON 5.2. Commande LIST La commande LIST (abréviation : L) permet d'afficher le contenu du buffer. Chaque ligne est précédée de son numéro. La dernière est précédée de _*_ : c'est la ligne courante. La ligne courante est la ligne sur laquelle les autres commandes de l'éditeur SQLPLUS agiront. La commande LIST ramène toujours la ligne courante à la dernière ligne du buffer. SQL> select 3 from 4 dept 5 4* dept Il est possible de faire suivre d'un nombre le mot clé LIST. SQLPLUS affiche alors uniquement la ligne du buffer qui correspond à ce numéro, c'est alors elle qui devient la ligne courante. SQL> L1 1* select 5.3. Commande CHANGE La commande CHANGE (abréviation : C) permet de remplacer une chaîne de caractères par une autre dans la ligne courante. C/chaîne1 /chaîne2 / remplace la 1ère occurrence de chaîne1 par chaîne2 dans la ligne courante. SQL> select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 3
40 OPERATIONS BOSTON SQL> change /*/deptno 1* select deptno from dept 1* select deptno from dept DEPTNO ---------- 10 20 30 40 5.4. Commande APPEND La commande APPEND (abréviation : A) permet d'ajouter du texte en fin de la ligne courante. A texte SQL> select deptno 2 1* select deptno SQL> A,dname 1* select deptno,dname SQL> A from dept; 1* select deptno,dnamefrom dept 1* select deptno,dnamefrom dept select deptno,dnamefrom dept * ERREUR à la ligne 1 : ORA-00923: mot-clé FROM absent à l'emplacement prévu SQL> change /dnamefrom/dname from 1* select deptno,dname from dept 1* select deptno,dname from dept DEPTNO DNAME ---------- -------------- 10 ACCOUNTING 20 RESEARCH 30 SALES 40 PERATIONS 5.5. Commande DEL 4
La commande DEL supprime la ligne courante. La nouvelle ligne courante est la ligne suivant la ligne supprimée (ou la ligne précédente si la ligne supprimée était la dernière). 1* select deptno,dname from dept SQL> del SP2-0223: Pas de lignes dans la mémoire tampon SQL. SQL> select 3 2* * SQL> del 1* select 6 Personnalisation de l environnement Pour personnaliser l environnement SQLPlus lors d une session de travail, utiliser la commande : SET variable_sql valeur Ex : SQL> set linesize 400 Pour connaître la valeur d une variable : SHOW variable_sql Ex : SQL> set linesize 400 SQL> show linesize linesize 400 Pour connaître la valeur de toutes les variables SQL : SHOW ALL 7 Astuces 7.1. Exécuter un script SQL dans SQLPlus Il est possible de sauvegarder des requêtes SQL dans un fichier script. Imaginons par exemple que ce fichier se nomme C:/tp/agence.sql. Pour exécuter ce fichier, taper @ suivi du path et du nom de fichier ou start suivi du path et du nom de fichier: SQL> @ C:/tp/agence.sql 5
ou SQL> start C:/tp/agence.sql 7.2. Demander à l utilisateur d entrer des valeurs Il est possible de demander à l utilisateur d entrer des valeurs, à l aide du signe &. Pour une valeur numérique : SQL> SELECT * FROM dept 2 WHERE deptno= &d; Entrez une valeur pour d : 10 ancien 2 : WHERE deptno= &d nouveau 2 : WHERE deptno= 10 DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK Pour une chaîne de caractères, on rajoutera des : SQL> select * from dept where loc = '&l'; Entrez une valeur pour l : NEW WORK ancien 1 : select * from dept where loc = '&l' nouveau 1 : select * from dept where loc = 'NEW WORK' aucune ligne sélectionnée 7.3. Sauvegarde de la session de travail SPOOL fichier enregistre dans le fichier les commandes tapées ensuite par l'utilisateur, et les réponses d'oracle. SPOOL OFF arrête cette sauvegarde. 7.4. Aide HELP commande-sql est une commande SQL*PLUS qui affiche de l'aide sur commande-sql. 8 Référence : http://ugweb.cs.ualberta.ca/~c391/manual/title.html 6