PLSQL - Part1
PLSQL - Part1
PLSQL - Part1
Abir GORRAB
[email protected]
Plan du cours
Introduction
Les variables
PL/SQL 2
Introduction
SQL est un langage non procédural
PL/SQL 3
Introduction
PL/SQL 4
Introduction
Supposons que nous voulons accorder
un bonus à chaque employé en fonction
des heures effectuées sur un projet.
PL/SQL 5
Structure d’un programme
Le langage PL/SQL :
PL/SQL 6
Structure d’un programme
Blocs
PL/SQL 7
Structure d’un programme
Structure d’un bloc
DECLARE
-- définitions de variables
BEGIN
-- Les instructions à exécuter
EXCEPTION
-- La récupération des erreurs
END;
PL/SQL 8
Structure d’un programme
Les seuls ordres SQL que l’on peut trouver dans un
bloc PL/SQL sont:
SELECT, INSERT, UPDATE, DELETE.
PL/SQL 9
Commentaires
/* pour plusieurs
lignes */
PL/SQL 10
Les variables
PL/SQL
Variables
Identificateur Oracle(nom
de la variable):
- 30 caractères au plus
- Commence par une lettre
- Peut contenir chiffres, lettres, _, $ et#
PL/SQL 12
Variables
Plusieurs types de variables sont manipulés par
un programme PL/SQL :
○ Variables PL/SQL :
Types scalaires recevant une seule valeur :
INTEGER, REAL, DATE, BOOLEAN + %TYPE
PL/SQL 13
Exemples
Declare
age integer;
nom varchar2(30);
dateNaissance date;
ok boolean := true;
N.B: Le type BOOLEAN ne peut prendre que l’une des valeurs TRUE, FALSE,
ou NULL ( pas de 0 ou 1).
declare
date_naissance DATE := ‘DD/MM/YYYY’;
compteur integer default 0;
id char(5) not null ;
PL/SQL 14
Déclaration d’une variable
identifiant [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];
Declare
v_hiredate DATE;
v_deptno NUMBER(2) NOT NULL := 10;
v_location VARCHAR2(13) := 'Atlanta';
c_comm CONSTANT NUMBER := 1400;
N.B. Une variable déclarée non nulle doit avoir impérativement une valeur
par défaut.
PL/SQL 15
Variables: L’attribut %TYPE
Déclarer une variable à partir de :
la définition d’une colonne de la base de données
la définition d’une variable précédemment déclarée
Préfixer %TYPE avec :
La table et la colonne de la base
Le nom de la variable précédemment déclarée
...
v_ename emp.ename%TYPE;
v_balance NUMBER(7,2);
v_min_balance v_balance%TYPE := 10;
...
PL/SQL 16
Variables: L’attribut %ROWTYPE
Une variable peut contenir toutes les colonnes d’une
ligne d’une table
...
employe emp%ROWTYPE;
...
PL/SQL 17
AFFICHAGE
Une alternative pour l’affichage de données à partir d’un
bloc PL/SQL
DBMS_OUTPUT.PUT_LINE
dbms_output.put_line('nb = ' || nb);
Applications
PL/SQL 18
Variables: L’attribut %ROWTYPE
Exemple
Soit la table:
MALADE (numMal, nom_mal, prenom_mal, age_mal,
adr_mal)
PL/SQL 19
Affectation
Plusieurs façons de donner une valeur à une variable :
:=
par la directive default
par la directive INTO de la requête SELECT
Exemples :
dateNaissance := ‘10/10/2004’;
PL/SQL 20
Interactions avec la base de données
PL/SQL 21
Exemple
DECLARE
v_nom emp.nome%TYPE;
v_emp emp%ROWTYPE;
BEGIN
SELECT nome INTO v_nom
FROM emp
WHERE matr = 500;
SELECT * INTO v_emp
FROM emp
WHERE matr = 500;
PL/SQL 22
Saisie des données
Accept
PL/SQL 23
Variables non PL/SQL
Variables de substitution
PL/SQL 24
Variables non pl/sql
Exemple
Ecrire un programme qui permet de demander la saisie d’un numéro
puis de l’afficher.
PL/SQL 25
Variables non pl/sql
set serveroutput on
Accept numero PROMPT ‘Entrez une valeur’;
Begin
DBMS_output.put_line(‘la valeur est ‘||&numero);
End;
PL/SQL 26
Exercices
PL/SQL 27