Oracle.

Slides:



Advertisements
Présentations similaires
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Advertisements

Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Types de données composites
Introduction au langage PL/SQL
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
SQL query - 1 UPMC - UFR 919 Ingéniérie - Cours Bases de données (BD-L3) SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes.
11 Alternative : syntaxe CSharp la structure conditionnelle : –si condition alors instruction1 sinon instruction2 fin si –En C# : if (condition) { instruction1.
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
UE2 - M22 Licence acoustique
Javascript 1° PARTIE : LES BASES
Cross-Plateform Cours JavaScript
Environnement du développement de BD ORACLE REPORTS 10g
LES TABLEAUX EN JAVA.
Langage de manipulation de données (LMD)
Les Tableaux Mme DJEBOURI. D.
Algorithmique AU El harchaoui noureddine
Structured Query Language
Algorithmique demander jeu du pendu.
Ajouter le code dans une page html
Initiation aux bases de données et à la programmation événementielle
L’Instruction de Test Alternatif
Généralité sur les bases de données
Les Instructions – Organigramme
Bases de programmation en Python
Principes de programmation (suite)
Collecte de données CAPI
Programmation Orientée Objet I. Introduction
Python for beginners Qu'est ce que Python
Alma - Analytics Formation avancée
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION ET ENSEIGNEMENT
Exercice PHP DEUST TMIC
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
3 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des fonctions monoligne afin de personnaliser la sortie.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Langage d’interrogation des Données Les fonctions de groupes
B.Shishedjiev - Informatique
7 Contraintes d’intégrité en SQL
Semaine #2 INF130 par Frédérick Henri.
Semaine 3 Retour sur la semaine 2 Plan de séance
5 Interface entre SQL et un programme
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
H. Wertz -- Exécution Symbolique
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
PROGRAMMATION ET ENSEIGNEMENT
Le langage C# : Partie 1.
SQL Structured Query Language
Python Nicolas THIBAULT
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

oracle

Opérateur de concaténation Un opérateur de concaténation : Lie des colonnes ou des chaînes de caractères à d'autres colonnes Est représenté par deux barres verticales (||) Crée une colonne résultante qui est une expression de type caractère SELECT last_name||job_id AS "Employees" FROM employees;

Utiliser des chaînes de caractères littérales SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees;

Opérateur de délimitation (q) alternatif SELECT department_name || q'[, it's assigned Manager Id: ]' || manager_id AS "Department and Manager" FROM departments;

Utiliser les fonctions de manipulation de caractères SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM employees WHERE SUBSTR(job_id, 4) = 'REP';

Fonctions numériques ROUND : arrondit la valeur à une décimale donnée TRUNC : tronque la valeur à une décimale donnée MOD : renvoie le reste d'une division Fonction Résultat ROUND(45.926, 2) 45.93 TRUNC(45.926, 2) 45.92 MOD(1600, 300) 100

Manipuler les dates Dans la base de données Oracle, les dates sont stockées dans un format numérique interne : siècle, année, mois, jour, heures, minutes et secondes. Le format de date par défaut est DD-MON-RR. Ce format permet le stockage des dates du 21ème siècle dans le 20ème siècle via l'indication les deux derniers chiffres de l'année uniquement. De la même façon, il permet le stockage des dates du 20ème siècle dans le 21ème siècle. SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-88';

Utiliser les dates SYSDATE est une fonction qui renvoie : La date L'heure

Utiliser des opérateurs arithmétiques avec des dates SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS FROM employees WHERE department_id = 90;

Fonctions de date Fonction Résultat MONTHS_BETWEEN Nombre de mois entre deux dates ADD_MONTHS Ajout de mois calendaires à une date NEXT_DAY Jour qui suit la date indiquée LAST_DAY Dernier jour du mois ROUND Date arrondie TRUNC Date tronquée

Utiliser des fonctions de date Résultat MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') 19.6774194 ADD_MONTHS ('11-JAN-94',6) '11-JUL-94' NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95' LAST_DAY ('01-FEB-95') '28-FEB-95'

Utiliser l'expression CASE Elle facilite les interrogations conditionnelles grâce un fonctionnement semblable à celui de l'instruction IF-THEN-ELSE : SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees; … …

Définition du langage PL/SQL Signifie "Procedural Language extension to SQL" (extension procédurale du langage SQL) Est le langage standard d'accès aux données d'Oracle Corporation pour les bases de données relationnelles Intègre de manière transparente les structures procédurales au langage SQL Fournit des structures procédurales telles que : Variables, constantes et types Structures de contrôle, telles que les instructions conditionnelles et les boucles Programmes réutilisables écrits une fois et exécutés plusieurs fois

Types de bloc Anonyme Fonction Procédure [DECLARE] BEGIN --statements [EXCEPTION] END; PROCEDURE name IS BEGIN --statements [EXCEPTION] END; FUNCTION name RETURN datatype IS BEGIN --statements RETURN value; [EXCEPTION] END;

Tester la sortie d'un bloc PL/SQL Activez la sortie dans iSQL*Plus avec la commande SET SERVEROUTPUT ON. Utilisez un package Oracle prédéfini et sa procédure : DBMS_OUTPUT.PUT_LINE SET SERVEROUTPUT ON … DBMS_OUTPUT.PUT_LINE(' The First Name of the Employee is ' || f_name); …

Déclarer et initialiser des variables PL/SQL Syntaxe : Exemples : identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr]; DECLARE emp_hiredate DATE; emp_deptno NUMBER(2) NOT NULL := 10; location VARCHAR2(13) := 'Atlanta'; c_comm CONSTANT NUMBER := 1400;

Contrôle d'itération : instructions LOOP Les boucles permettent d'exécuter plusieurs fois une instruction ou une séquence d'instructions. Il existe trois types de boucle : Boucle de base Boucle FOR Boucle WHILE

Boucles de base Syntaxe : LOOP statement1; . . . EXIT [WHEN condition]; END LOOP;

Boucles WHILE Syntaxe : Utilisez la boucle WHILE pour répéter des instructions tant qu'une condition renvoie TRUE. WHILE condition LOOP statement1; statement2; . . . END LOOP;

Boucles FOR Utilisez une boucle FOR pour simplifier le contrôle du nombre d'itérations. Ne déclarez pas le compteur (sa déclaration est implicite). La syntaxe 'lower_bound .. upper_bound' est obligatoire. FOR counter IN [REVERSE] lower_bound..upper_bound LOOP statement1; statement2; . . . END LOOP;

Boucles FOR Règles Ne référencez le compteur qu'à l'intérieur de la boucle ; il n'est pas défini en dehors. Ne référencez pas le compteur en tant que cible d'une affectation. Aucune limite de boucle ne doit être NULL.

Déclarer le curseur Syntaxe : CURSOR cursor_name IS select_statement; DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHERE department_id =30;

Ouvrir le curseur DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees WHERE department_id =30; ... BEGIN OPEN emp_cursor;

Extraire des données du curseur BEGIN OPEN emp_cursor; FETCH emp_cursor INTO empno, lname; DBMS_OUTPUT.PUT_LINE( empno ||' '||lname); ... END; /

Extraire des données du curseur BEGIN OPEN emp_cursor; LOOP FETCH emp_cursor INTO empno, lname; EXIT WHEN emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE( empno ||' '||lname); END LOOP; ... END;

Fermer le curseur ... LOOP FETCH emp_cursor INTO empno, lname; EXIT WHEN emp_cursor%NOTFOUND; DBMS_OUTPUT.PUT_LINE( empno ||' '||lname); END LOOP; CLOSE emp_cursor; END; /

Obtenir les informations d'état concernant un curseur Attribut Type Description %ISOPEN Booléen Prend la valeur TRUE si le curseur est ouvert %NOTFOUND Prend la valeur TRUE si la dernière extraction (fetch) ne renvoie pas de ligne %FOUND Prend la valeur TRUE si la dernière extraction renvoie une ligne ; complément de %NOTFOUND %ROWCOUNT Nombre Prend la valeur correspondant au nombre total de lignes renvoyées jusqu'à présent

Attribut %ISOPEN Exemple : Extrayez (fetch) les lignes uniquement lorsque le curseur est ouvert. Utilisez l'attribut de curseur %ISOPEN avant de réaliser une extraction pour déterminer si le curseur est ouvert. Exemple : IF NOT emp_cursor%ISOPEN THEN OPEN emp_cursor; END IF; LOOP FETCH emp_cursor...

Curseurs avec paramètres SET SERVEROUTPUT ON DECLARE CURSOR emp_cursor (deptno NUMBER) IS SELECT employee_id, last_name FROM employees WHERE department_id = deptno; dept_id NUMBER; lname VARCHAR2(15); BEGIN OPEN emp_cursor (10); ... CLOSE emp_cursor; OPEN emp_cursor (20);

Traiter les exceptions Exception prédéfinie du serveur Oracle Exception non prédéfinie du serveur Oracle Exception définie par l'utilisateur

Intercepter les exceptions Syntaxe : EXCEPTION WHEN exception1 [OR exception2 . . .] THEN statement1; statement2; . . . [WHEN exception3 [OR exception4 . . .] THEN . . .] [WHEN OTHERS THEN

Erreur non prédéfinie Intercepter l'erreur numéro –01400 du serveur Oracle, impossible d'insérer la valeur NULL SET SERVEROUTPUT ON DECLARE insert_excep EXCEPTION; PRAGMA EXCEPTION_INIT (insert_excep, -01400); BEGIN INSERT INTO departments (department_id, department_name) VALUES (280, NULL); EXCEPTION WHEN insert_excep THEN DBMS_OUTPUT.PUT_LINE('INSERT OPERATION FAILED'); DBMS_OUTPUT.PUT_LINE(SQLERRM); END; /

Fonctions d'interception des exceptions SQLCODE : renvoie la valeur numérique du code d'erreur SQLERRM : renvoie le message associé au code d'erreur

Intercepter les exceptions définies par l'utilisateur ... ACCEPT deptno PROMPT 'Please enter the department number:' ACCEPT name PROMPT 'Please enter the department name:' DECLARE invalid_department EXCEPTION; name VARCHAR2(20):='&name'; deptno NUMBER :=&deptno; BEGIN UPDATE departments SET department_name = name WHERE department_id = deptno; IF SQL%NOTFOUND THEN RAISE invalid_department; END IF; COMMIT; EXCEPTION WHEN invalid_department THEN DBMS_OUTPUT.PUT_LINE('No such department id.'); END; /