G. Salzano, P. Chochois, F. Petit 26 janvier 2016 1 Oracle : Initiation à SQL*P

G. Salzano, P. Chochois, F. Petit 26 janvier 2016 1 Oracle : Initiation à SQL*PLUS Table des matières 1 Documentation en ligne ...................................................................................................................................................... 1 2 Lancement d'une session SQL*Plus ................................................................................................................................... 1 3 Ecriture et exécution de commandes SQL et SQL*Plus ..................................................................................................... 2 3.1 Différence d'écriture entre commandes SQL et SQL*Plus ......................................................................................... 2 3.2 Saisie de commande avec le mini-éditeur .................................................................................................................. 2 3.3 Sauvegarde et rappel de commande dans le mini-éditeur .......................................................................................... 3 3.4 Création d'un fichier de commandes avec un éditeur externe .................................................................................... 3 3.5 Exécution de fichiers de commandes avec RUN / START @................................................................................... 3 3.6 Commentaires sous Oracle ........................................................................................................................................ 3 3.7 Paramétrage des commandes et substitution de valeurs ............................................................................................ 3 4 Consultation de l'aide en ligne : HELP ............................................................................................................................... 4 5 Description des structures : DESCRIBE............................................................................................................................. 4 6 Appeler un commande système (avec HOST ou !) ............................................................................................................. 4 7 La table Dual ...................................................................................................................................................................... 5 8 Mise en forme des sorties ................................................................................................................................................... 5 8.1 Modification de l'environnement d'exécution ............................................................................................................. 5 8.2 Mise en forme d'en-tête/pied de page, de colonne (ttitle, btitle, column) ................................................................... 5 9 Redirection des sorties (spool) ............................................................................................................................................ 6 10 Sortir de la session SQL*Plus ............................................................................................................................................. 6 11 Annexes .............................................................................................................................................................................. 6 1 Documentation en ligne La documentation Oracle est accessible en ligne à l'adresse : https://docs.oracle.com/en/database/ ou selon les versions : http://docs.oracle.com/cd/E11882_01/ http://www.oracle.com/pls/db102/homepage Parmi les documents les plus utiles, vous trouverez Concepts et SQL Reference. 2 Lancement d'une session SQL*Plus - Créez préalablement un répertoire dans votre dossier personnel pour stocker les scripts et fichiers des TP oracle (par exemple TP_oracle). Choisissez ce répertoire comme répertoire courant. Dans la fenêtre du terminal, on peut lancer SQL*Plus par la commande : sqlplus user_oracle/password_oracle@base_oracle ou sqlplus user_oracle@base_oracle puis tapez le password à la demande… mais pour bénéficier de l'historique de commande, vous allez taper : rlwrap sqlplus user_oracle/password_oracle@base_oracle Variables à remplacer : <user_oracle> = ue<nom_de_votre_formation>_i, (avec i = 001, 002, 003, …, n) <nom_de_votre_formation> = bda | ist | sig | imis | bdro <password_oracle> = ora <base_oracle> = etud - SQL*Plus est un outil de commande en ligne qui permet de lancer des commandes SQL, SQL*Plus ou des blocs PL/SQL. Le prompt (invite) SQL apparait sous la forme : SQL> - La commande exit permettra de sortir de la session SQL*Plus en fin de travail. Ne pas oublier les 0 avant ! Ex: 051 G. Salzano, P. Chochois, F. Petit 26 janvier 2016 2 3 Ecriture et exécution de commandes SQL et SQL*Plus 3.1 Différence d'écriture entre commandes SQL et SQL*Plus En environnement SQL*Plus : - une commande SQL doit se terminer obligatoirement par un point-virgule « ; ». SELECT * FROM centre; - une commande SQL*Plus (ex: DESC) ne nécessite pas de point-virgule, ni de caractère de fin de ligne. DESC CENTRE Il est conseillé d'écrire une commande sur plusieurs lignes afin d’identifier plus facilement les erreurs. Cependant, pour poursuivre si nécessaire une commande SQL*PLUS sur plusieurs lignes, il faut saisir le signe - (moins) suivi d'un <RC> à la fin de la ligne à étendre. 3.2 Saisie de commande avec le mini-éditeur SQL*Plus offre un mini-éditeur de commandes SQL et SQL*Plus. Cet éditeur indique la ligne courante par la présence du symbole * en début de ligne. L'éditeur permet les actions suivantes (on peut utiliser la commande abrégée ou complète ): • l list lister la dernière commande SQL du buffer, chaque ligne étant précédée de son numéro. • ln lister la ligne n de la dernière commande SQL du buffer n lister la ligne n de la dernière commande SQL du buffer • c change changer l'expression1 par l'expression2 dans la ligne courante (ex: c/expression1/ expression2) • a append ajouter du texte à la fin de la ligne courante • i input insérer une ou plusieurs lignes de texte après la ligne courante (ligne vide pour finir) • del supprime la ligne courante • / exécute le contenu du buffer courant - Récupérez le fichier tables_centres_pour_oracle.sql sur le site de l’enseignant. Il contient un script SQL permettant de créer les 3 tables categorie, centre, centre_ext avec leurs enregistrements. Le contenu de ces tables est en annexe. - Exécutez la commande START suivi d'un espace puis du nom du fichier (cf. § 3.5 de ce document) pour lancer ce fichier. - Tapez et exécutez les commandes suivantes afin de manipuler l’éditeur SQL*Plus : SQL> select * 2 from categorie; SQL> select * 2 from centre; SQL> select nomcentre 2 from centre; En cas d'erreur sur une commande, le curseur se positionne dans le buffer sur la ligne contenant la première erreur détectée. Un message indique le N° de ligne et le type d'erreur (ici un identificateur invalide en ligne 1). Sans retaper toute la commande, on peut modifier le buffer pour changer le nom de la colonne invalide avec la commande c de l'éditeur puis l'exécuter avec la commande / comme indiqué ci-dessous. SQL> l1 1* select nomcentre SQL> c/nomcentre/nomc 1* select nomc SQL> / NOMC - - - - - - - PARIS1 PARIS2 LYON1 … BORDEAUX2 8 lignes(s) sélectionnée(s) SQL> l2 2 * from centre La ligne modifiée s'affiche. / permet d'exécuter le buffer ln permet de lister la ligne n G. Salzano, P. Chochois, F. Petit 26 janvier 2016 3 SQL> a where nomc like 'LY%'; 2* from centre where nomc like 'LY%' SQL> / NOMC - - - - - - - LYON1 LYON2 3.3 Sauvegarde et rappel de commande dans le mini-éditeur Après saisie d'une commande SQL, on peut sauvegarder le contenu du buffer avec la commande save (ou s). L'extension .sql est ajoutée automatiquement. Le fichier sera créé dans le répertoire de connexion. Si un fichier de même nom existe déjà, un message précise l'option à employer pour l'écraser (REPLACE). Dans le fichier, un / sera ajouté à la fin de la commande (pour une exécution automatique par la commande START) 3.3.1 Sauvegarde de commande A faire : Saisissez et exécutez la commande suivante puis enregistrez-la pour obtenir un fichier de nom centrePa.sql : SQL> select n_centre, nomc from centre where nomc like 'PA%'; N_CENTRE NOMC - - - - - - - - 1 PARIS1 2 PARIS2 SQL> save centrePA Un message indique la création du fichier centrePA.sql 3.3.2 Rappel de commande On peut rappeler le fichier avec la dans le buffer avec la commande get. A faire : dans le buffer, changez PA en LY et enregistrez cette requête dans un nouveau fichier centreLY.sql. Rappelez dans le buffer la commande centrePA.sql et exécutez-la. Rappelez dans le buffer la commande centreLY.sql et exécutez-la. 3.4 Création d'un fichier de commandes avec un éditeur externe On peut créer et sauvegarder un fichier de commandes avec un éditeur de texte externe (Emacs, gEdit…). Dans ce cas, le nom donné par l'utilisateur au fichier de commandes doit être complet, avec le suffixe .sql. On peut enregistrer alors plusieurs commandes à la suite dans le fichier. 3.5 Exécution de fichiers de commandes avec RUN / START @ / : exécute le contenu du buffer courant run : liste le contenu du buffer courant puis l'exécute (commandes SQL seulement). start : exécute un fichier de commandes SQL et SQL*Plus. @ : exécute un fichier de commandes SQL et SQL*Plus (équivalent de start, il peut être suivi ou non d'un espace). 3.6 Commentaires sous Oracle Les commentaires dans un fichier SQL*Plus pour Oracle peuvent être de 2 formes : 1) Avec tiret double (commentaire sur 1 seule ligne, fermeture implicite en fin de ligne) Exemple : -- tapez ici la ligne de commentaire -- tapez éventuellement une autre ligne de commentaire 2) Avec /* */ (commentaire qui peut être sur une ou plusieurs lignes) /* tapez ici le commentaire et prendre fin avec les symboles étoile slash */ Testez une commande SQL de votre choix en lui mettant un commentaire. 3.7 Paramétrage des commandes et substitution de valeurs Les commandes peuvent être paramétrées et les valeurs des variables substituées à l'exécution. La substitution peut porter sur plusieurs paramètres. Ces commandes paramétrées peuvent être sauvegardées, comme toutes les autres commandes SQL. G. Salzano, P. Chochois, F. Petit 26 janvier 2016 4 Tapez la commande : SQL> select distinct nomc from &table ; Enter value for table : Saisissez la valeur centre pour cette variable. Le système Oracle indique : ancien 1 : select distinct nomc from &table nouveau 1 : select distinct nomc from centre et affiche le résultat : NOMC - - - - - - - - - - PARIS1 PARIS2 LYON1 … A faire : Recommencez pour afficher la requête pour la table centre_ext. NOMC - - - - - - - - - - NEWYORK2 LONDRES … ROME TOKYO 6 ligne(s) sélectionnée(s) Tapez la commande : SQL> select nomc from centre 2 where ca > &ca and benef > &benef ; Enter value for ca : 200 Enter value for benef : 1 NOMC - - - - - - - - - - PARIS1 LYON1 4 Consultation de l'aide en ligne : HELP La commande HELP permet d'avoir une aide en ligne uploads/Industriel/ tp-oracle-ini-sqlplus.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager