Вы находитесь на странице: 1из 22

Ecrire des instructions

excutables

Objectifs

A la fin de ce chapitre, vous pourrez :

comprendre l'utilit de la section excutable


utiliser correctement les identificateurs
crire des instructions dans la section excutable
dcrire les rgles des blocs imbriqus
excuter et tester un bloc PL/SQL
utiliser des conventions de codage

Syntaxe et remarques relatives


aux blocs PL/SQL

Les instructions peuvent s'tendre sur plusieurs


lignes

Les units lexicales se rpartissent en plusieurs


catgories :

dlimiteurs

identificateurs

littraux

commentaires

Identificateurs

Peuvent contenir jusqu' 30 caractres

Ne doivent pas contenir de caractres tels que les


traits d'union et les barres obliques, ni d'espaces

Ne doivent pas porter le mme nom qu'une


colonne de table de la base de donnes

Ne doivent pas correspondre des mots rservs

Doivent commencer par une valeur alphabtique


Peuvent contenir des valeurs numriques, des
traits de soulignement, ainsi que les signes dollar
et dise

Syntaxe et remarques relatives


aux blocs PL/SQL

Littraux

Les littraux de type caractre et date doivent tre


mis entre apostrophes.
v_name := 'Henderson';

Les nombres peuvent correspondre des valeurs


simples ou une notation scientifique.

Une barre oblique ( / ) permet d'excuter le bloc


PL/SQL dans un fichier script ou dans certains
outils tels que iSQL*PLUS.

Commenter le code

Faire prcder les commentaires monolignes de


deux tirets (--)

Placer les commentaires multilignes entre les


symboles /* et */
Exemple :
DECLARE
...
v_sal NUMBER (9,2);
BEGIN
/* Compute the annual salary based on the
monthly salary input from the user */
v_sal := :g_monthly_sal * 12;
END;
-- This is the end of the block

Fonctions SQL en PL/SQL

Disponibles dans les instructions procdurales :

fonctions monolignes numriques


fonctions monolignes de
type caractre
fonctions de conversion de
Identique en SQL
type de donnes
fonctions de date
fonctions d'horodatage
fonctions GREATEST et LEAST
fonctions diverses

Non disponibles dans les instructions


procdurales :

fonction DECODE
fonctions de groupe

Fonctions SQL en PL/SQL : exemples

Crer l'adresse postale d'une socit


v_mailing_address := v_name||CHR(10)||
v_address||CHR(10)||v_state||
CHR(10)||v_zip;

Convertir le nom d'un employ en minuscules


v_ename

:= LOWER(v_ename);

Conversion de type de donnes

Convertir des donnes en types de donnes


comparables

Mlanger les types de donnes peut provoquer


des erreurs ou nuire aux performances

Fonctions de conversion :

TO_CHAR

TO_DATE

TO_NUMBER

DECLARE
v_date DATE := TO_DATE('12-JAN-2001', 'DD-MON-YYYY');
BEGIN
. . .

Conversion de type de donnes

L'instruction suivante gnre une erreur de


compilation si la variable v_date est dclare en
tant que type de donnes DATE .
v_date := 'January 13, 2001';

Conversion de type de donnes

Pour corriger cette erreur, il faut utiliser la fonction


de conversion TO_DATE .
v_date := TO_DATE ('January 13, 2001',
'Month DD, YYYY');

Blocs imbriqus et porte des variables

Les blocs PL/SQL peuvent tre imbriqus partout


o une instruction excutable est permise

Un bloc imbriqu devient une instruction

La porte d'un identificateur correspond la


rgion d'un programme (bloc, sous-programme ou
package) partir de laquelle vous pouvez
rfrencer l'identificateur

Une section de traitement des exceptions peut


contenir des blocs imbriqus

Blocs imbriqus et porte des variables


Exemple :
...
x BINARY_INTEGER;
BEGIN
...
DECLARE
y NUMBER;
BEGIN
y:= x;
END;
...
END;

Porte de x

Porte de y

Porte de l'identificateur

Un identificateur est visible dans les rgions partir


desquelles vous pouvez le rfrencer sans devoir le
qualifier :
un bloc peut effectuer une recherche dans le bloc
englobant

un bloc ne peut pas effectuer de recherche dans


les blocs qu'il englobe

Qualifier un identificateur

Le qualificatif peut correspondre l'tiquette d'un


bloc englobant

Qualifier un identificateur en utilisant l'tiquette du


bloc en tant que prfixe

<<outer>>
DECLARE
birthdate DATE;
BEGIN
DECLARE
birthdate DATE;
BEGIN
...
outer.birthdate :=
TO_DATE('03-AUG-1976',
'DD-MON-YYYY');
END;
....
END;

Dterminer la porte d'une variable


Exercice
<<outer>>
DECLARE
v_sal
NUMBER(7,2) := 60000;
v_comm
NUMBER(7,2) := v_sal * 0.20;
v_message VARCHAR2(255) := ' eligible for commission';
BEGIN
DECLARE
v_sal
NUMBER(7,2) := 50000;
v_comm
NUMBER(7,2) := 0;
v_total_comp
NUMBER(7,2) := v_sal + v_comm;
BEGIN
v_message := 'CLERK not'||v_message;
outer.v_comm := v_sal * 0.30;

END;
v_message := 'SALESMAN'||v_message;
END;

Oprateurs en PL/SQL

Oprateur logique

Oprateur exponentiel (**)

Oprateur arithmtique
Oprateur de concatnation
Parenthses permettant de
contrler l'ordre des oprations

Identiques
en SQL

Oprateurs en PL/SQL

Exemples :

Incrmenter le compteur d'une boucle.


v_count

Dfinir la valeur d'un indicateur boolen.


v_equal

:= v_count + 1;

:= (v_n1 = v_n2);

Vrifier si un numro d'employ contient une


valeur.
v_valid

:= (v_empno IS NOT NULL);

Remarques relatives la programmation

Faciliter la maintenance du code en :

commentant le code

dveloppant des conventions d'appellation pour


les identificateurs et les autres objets

ralisant des indentations pour amliorer la clart

dveloppant une convention d'utilisation des


majuscules et des minuscules

Indenter le code
Pour plus de clart, indenter chaque niveau du code
Exemple :
BEGIN
IF x=0 THEN
y:=1;
END IF;
END;

DECLARE
v_deptno
NUMBER(4);
v_location_id NUMBER(4);
BEGIN
SELECT department_id,
location_id
INTO
v_deptno,
v_location_id
FROM
departments
WHERE
department_name
= 'Sales';
...
END;
/

Synthse
Ce chapitre vous a appris les rgles suivantes :

syntaxe et remarques relatives aux blocs PL/SQL

programmation en PL/SQL :

utilisation correcte des identificateurs


structure des blocs PL/SQL : imbrication des
blocs et rgles de porte

fonctions

fonctions de conversion de type de donnes

oprateurs

conventions et remarques

BEGIN

EXCEPTION

DECLARE

END;

Prsentation de l'exercice 2

Dans cet exercice, vous allez :

revoir les rgles de porte et d'imbrication


dvelopper et tester des blocs PL/SQL

Вам также может понравиться

  • SQL Injection
    SQL Injection
    От Everand
    SQL Injection
    Рейтинг: 4 из 5 звезд
    4/5 (1)
  • 1-3 - Instructions Exécutables
    1-3 - Instructions Exécutables
    Документ13 страниц
    1-3 - Instructions Exécutables
    LASSAAD JOUINI
    Оценок пока нет
  • Chap 1
    Chap 1
    Документ47 страниц
    Chap 1
    Siwar GHALLEB
    Оценок пока нет
  • Cours PL SQL
    Cours PL SQL
    Документ111 страниц
    Cours PL SQL
    Youssef JB
    Оценок пока нет
  • Chapitre 2 - Gestion Des Données Et Structures de Contrôle
    Chapitre 2 - Gestion Des Données Et Structures de Contrôle
    Документ53 страницы
    Chapitre 2 - Gestion Des Données Et Structures de Contrôle
    Warda Flora
    Оценок пока нет
  • PLSQL2021
    PLSQL2021
    Документ43 страницы
    PLSQL2021
    Baha Bechikh
    Оценок пока нет
  • Chapitre 4 PL SQL
    Chapitre 4 PL SQL
    Документ9 страниц
    Chapitre 4 PL SQL
    Saoussen Azouz
    Оценок пока нет
  • Cours1 PLSQL FSTG
    Cours1 PLSQL FSTG
    Документ59 страниц
    Cours1 PLSQL FSTG
    Reda Flann
    Оценок пока нет
  • PLSQLF
    PLSQLF
    Документ84 страницы
    PLSQLF
    Sofia Jaâouan
    Оценок пока нет
  • BD Avance Chap4
    BD Avance Chap4
    Документ139 страниц
    BD Avance Chap4
    Othmane Bouzoubaa
    Оценок пока нет
  • BDA Introduction PL SQL
    BDA Introduction PL SQL
    Документ48 страниц
    BDA Introduction PL SQL
    Za Kia
    Оценок пока нет
  • PLSQL - Part1
    PLSQL - Part1
    Документ27 страниц
    PLSQL - Part1
    Mariem Selmi
    Оценок пока нет
  • Chap1 PLSQL
    Chap1 PLSQL
    Документ30 страниц
    Chap1 PLSQL
    Farid
    Оценок пока нет
  • Chapitre 4 Langage SQL
    Chapitre 4 Langage SQL
    Документ74 страницы
    Chapitre 4 Langage SQL
    Vylaren Studio
    Оценок пока нет
  • Cours - 3 - PLSQL - ESTSB2
    Cours - 3 - PLSQL - ESTSB2
    Документ87 страниц
    Cours - 3 - PLSQL - ESTSB2
    Douaa
    Оценок пока нет
  • IBD 2CS-GLSI-Cours01
    IBD 2CS-GLSI-Cours01
    Документ16 страниц
    IBD 2CS-GLSI-Cours01
    Eya Hmida
    Оценок пока нет
  • CE131G Formation Ibm db2 SQL Workshop For Experienced Users PDF
    CE131G Formation Ibm db2 SQL Workshop For Experienced Users PDF
    Документ2 страницы
    CE131G Formation Ibm db2 SQL Workshop For Experienced Users PDF
    CertyouFormation
    Оценок пока нет
  • TP BD 2022
    TP BD 2022
    Документ8 страниц
    TP BD 2022
    aziz exp00
    Оценок пока нет
  • 2015 04 25 Chapitre 3 Les Scriptes PL-SQL
    2015 04 25 Chapitre 3 Les Scriptes PL-SQL
    Документ13 страниц
    2015 04 25 Chapitre 3 Les Scriptes PL-SQL
    Anonh Adiko
    Оценок пока нет
  • Les 01
    Les 01
    Документ31 страница
    Les 01
    sowhat-01
    Оценок пока нет
  • Introduction Au Langage PL/SQL: Dr. Mohamed Anis BACH TOBJI
    Introduction Au Langage PL/SQL: Dr. Mohamed Anis BACH TOBJI
    Документ24 страницы
    Introduction Au Langage PL/SQL: Dr. Mohamed Anis BACH TOBJI
    Mohamed Amine Sabahi
    Оценок пока нет
  • Cours PLSQLNV
    Cours PLSQLNV
    Документ68 страниц
    Cours PLSQLNV
    OUMAIMA ELMEJGARI
    Оценок пока нет
  • Cours PL SQL
    Cours PL SQL
    Документ123 страницы
    Cours PL SQL
    Yasmine Benomar
    Оценок пока нет
  • Oracle 03 PL SQL Oracle
    Oracle 03 PL SQL Oracle
    Документ47 страниц
    Oracle 03 PL SQL Oracle
    Khalil Lanjar
    Оценок пока нет
  • 1-pl-sql 2021 2022
    1-pl-sql 2021 2022
    Документ73 страницы
    1-pl-sql 2021 2022
    Sanae Zwina
    Оценок пока нет
  • PLSQL Sous Oracle
    PLSQL Sous Oracle
    Документ96 страниц
    PLSQL Sous Oracle
    Allawa Allo
    Оценок пока нет
  • Cours-Introduction Au PL-SQL
    Cours-Introduction Au PL-SQL
    Документ24 страницы
    Cours-Introduction Au PL-SQL
    farah baklouti
    Оценок пока нет
  • PLSQL1
    PLSQL1
    Документ27 страниц
    PLSQL1
    Mohamed Lahmer
    Оценок пока нет
  • Cours PL SQL 1
    Cours PL SQL 1
    Документ35 страниц
    Cours PL SQL 1
    Amira Skander
    Оценок пока нет
  • Sgbdii PLSQL
    Sgbdii PLSQL
    Документ213 страниц
    Sgbdii PLSQL
    Abdessamad Benhammou
    Оценок пока нет
  • Ilovepdf Merged
    Ilovepdf Merged
    Документ328 страниц
    Ilovepdf Merged
    Jordi tomangnimenan
    Оценок пока нет
  • Cours 2 SGBD GEII 2021
    Cours 2 SGBD GEII 2021
    Документ13 страниц
    Cours 2 SGBD GEII 2021
    Alpha Diallo
    Оценок пока нет
  • Support de Cours Langage de Gestion SQL. G3 Info
    Support de Cours Langage de Gestion SQL. G3 Info
    Документ61 страница
    Support de Cours Langage de Gestion SQL. G3 Info
    Michael Moshi
    Оценок пока нет
  • Oracle PL/SQL
    Oracle PL/SQL
    Документ109 страниц
    Oracle PL/SQL
    Medo Zn
    Оценок пока нет
  • Cours SQL
    Cours SQL
    Документ23 страницы
    Cours SQL
    Badr Farouk
    Оценок пока нет
  • 5 - Les Langages de Requête SQL
    5 - Les Langages de Requête SQL
    Документ49 страниц
    5 - Les Langages de Requête SQL
    biz nryoo
    Оценок пока нет
  • BDD Cours4
    BDD Cours4
    Документ86 страниц
    BDD Cours4
    lafdali
    Оценок пока нет
  • Support de Cours Parti1 SQL
    Support de Cours Parti1 SQL
    Документ40 страниц
    Support de Cours Parti1 SQL
    jqy4h4zqc6
    Оценок пока нет
  • Langage SQL PDF
    Langage SQL PDF
    Документ67 страниц
    Langage SQL PDF
    Haitam Ibrahim Amine
    Оценок пока нет
  • Cours Oracle
    Cours Oracle
    Документ99 страниц
    Cours Oracle
    SimoKas
    Оценок пока нет
  • LSI2 PLSQL
    LSI2 PLSQL
    Документ78 страниц
    LSI2 PLSQL
    hind20028
    Оценок пока нет
  • Chap6.1 PL - SQL
    Chap6.1 PL - SQL
    Документ28 страниц
    Chap6.1 PL - SQL
    Med Yassine Messaoud
    Оценок пока нет
  • Theories Des Bases de Donnees 5 - 2023
    Theories Des Bases de Donnees 5 - 2023
    Документ72 страницы
    Theories Des Bases de Donnees 5 - 2023
    Kevin Irambona
    Оценок пока нет
  • PLSQL PDF
    PLSQL PDF
    Документ64 страницы
    PLSQL PDF
    Bouthaina Khoukhou
    Оценок пока нет
  • Chapitre-2 PL SQL
    Chapitre-2 PL SQL
    Документ26 страниц
    Chapitre-2 PL SQL
    Maryem Baihat
    Оценок пока нет
  • BD Chapitre4
    BD Chapitre4
    Документ14 страниц
    BD Chapitre4
    amel amoula
    Оценок пока нет
  • Cours SGBD
    Cours SGBD
    Документ5 страниц
    Cours SGBD
    Med Amine Rihani
    Оценок пока нет
  • Si TSQL1 2020 21
    Si TSQL1 2020 21
    Документ31 страница
    Si TSQL1 2020 21
    saad c
    Оценок пока нет
  • Notions de Base
    Notions de Base
    Документ85 страниц
    Notions de Base
    Mehdi HALLEB
    Оценок пока нет
  • Cours PL SQL
    Cours PL SQL
    Документ20 страниц
    Cours PL SQL
    Amina Ben Abdallah
    100% (1)
  • 7 SQL3
    7 SQL3
    Документ39 страниц
    7 SQL3
    lazrek safa
    Оценок пока нет
  • Bases Données Avancées
    Bases Données Avancées
    Документ70 страниц
    Bases Données Avancées
    NAJAT AJIAR
    Оценок пока нет
  • Installation Base de Données Oracle1
    Installation Base de Données Oracle1
    Документ31 страница
    Installation Base de Données Oracle1
    YO
    Оценок пока нет
  • Cous PLSQL
    Cous PLSQL
    Документ159 страниц
    Cous PLSQL
    Imane Rachid
    Оценок пока нет
  • Chapitre 1 - Introduction Au Langage PLSQL
    Chapitre 1 - Introduction Au Langage PLSQL
    Документ33 страницы
    Chapitre 1 - Introduction Au Langage PLSQL
    Motaz Trabelsi
    Оценок пока нет
  • Lundi
    Lundi
    Документ57 страниц
    Lundi
    Zineb Saidi
    Оценок пока нет
  • SQL LDD
    SQL LDD
    Документ31 страница
    SQL LDD
    Ahlam Mejdoul
    Оценок пока нет
  • PL SQL
    PL SQL
    Документ21 страница
    PL SQL
    akram el hadri
    Оценок пока нет
  • Serie Dexercice 1
    Serie Dexercice 1
    Документ7 страниц
    Serie Dexercice 1
    Nesrine OUESLATI
    Оценок пока нет
  • Oracle PL SQL
    Oracle PL SQL
    Документ7 страниц
    Oracle PL SQL
    Ach Ouaek
    Оценок пока нет
  • Les 08
    Les 08
    Документ22 страницы
    Les 08
    Sahar Anajjar
    Оценок пока нет
  • Les 07
    Les 07
    Документ11 страниц
    Les 07
    Sahar Anajjar
    Оценок пока нет
  • Les 05
    Les 05
    Документ19 страниц
    Les 05
    Sahar Anajjar
    Оценок пока нет
  • Les 06
    Les 06
    Документ25 страниц
    Les 06
    Sahar Anajjar
    Оценок пока нет
  • Les 03
    Les 03
    Документ21 страница
    Les 03
    Sahar Anajjar
    Оценок пока нет
  • Les 04
    Les 04
    Документ28 страниц
    Les 04
    Sahar Anajjar
    Оценок пока нет
  • Les 01
    Les 01
    Документ31 страница
    Les 01
    Sahar Anajjar
    Оценок пока нет
  • Cours Android PDF
    Cours Android PDF
    Документ107 страниц
    Cours Android PDF
    Anouar Aleya
    Оценок пока нет
  • Exercices Uml Corriges WWW - Tunisie-Etudes
    Exercices Uml Corriges WWW - Tunisie-Etudes
    Документ17 страниц
    Exercices Uml Corriges WWW - Tunisie-Etudes
    rahmoucha7
    57% (7)
  • Systeme D'exploitation Linux PDF
    Systeme D'exploitation Linux PDF
    Документ87 страниц
    Systeme D'exploitation Linux PDF
    electricotaku415
    Оценок пока нет
  • Langage C
    Langage C
    Документ116 страниц
    Langage C
    karim Golo
    Оценок пока нет
  • Docs Soliditylang Org FR Stable
    Docs Soliditylang Org FR Stable
    Документ364 страницы
    Docs Soliditylang Org FR Stable
    youssef LRHCHA
    Оценок пока нет
  • Travaux Pratiques6
    Travaux Pratiques6
    Документ2 страницы
    Travaux Pratiques6
    Zarai Yahia
    Оценок пока нет
  • Programmation Logique Chap2 Klouche
    Programmation Logique Chap2 Klouche
    Документ4 страницы
    Programmation Logique Chap2 Klouche
    Massi Zoutat
    Оценок пока нет
  • Cours 04 Module TIC
    Cours 04 Module TIC
    Документ32 страницы
    Cours 04 Module TIC
    anis anima
    Оценок пока нет
  • Cours Matlab Simulink
    Cours Matlab Simulink
    Документ136 страниц
    Cours Matlab Simulink
    Baha Eddin Ferjani
    Оценок пока нет
  • TP1 BDD
    TP1 BDD
    Документ4 страницы
    TP1 BDD
    Aya Alaa
    Оценок пока нет
  • Cours Genie Logic I El
    Cours Genie Logic I El
    Документ178 страниц
    Cours Genie Logic I El
    Flash Azankpe
    Оценок пока нет
  • Le SpermaScore 10 Kruger
    Le SpermaScore 10 Kruger
    Документ16 страниц
    Le SpermaScore 10 Kruger
    Candide
    Оценок пока нет
  • Installer SPIP en Local Avec EasyPHP Part 3
    Installer SPIP en Local Avec EasyPHP Part 3
    Документ7 страниц
    Installer SPIP en Local Avec EasyPHP Part 3
    Aubryl Nemali
    Оценок пока нет
  • Support Latex
    Support Latex
    Документ43 страницы
    Support Latex
    Imane Elrhazouani
    Оценок пока нет
  • Digitalisation - 5 Étapes Et Outils Pour Réussir Votre Projet GMAO Simplement
    Digitalisation - 5 Étapes Et Outils Pour Réussir Votre Projet GMAO Simplement
    Документ19 страниц
    Digitalisation - 5 Étapes Et Outils Pour Réussir Votre Projet GMAO Simplement
    youcef
    Оценок пока нет
  • Extreme Programming (XP)
    Extreme Programming (XP)
    Документ44 страницы
    Extreme Programming (XP)
    rahmouny
    Оценок пока нет
  • FBD 1CS Cours01
    FBD 1CS Cours01
    Документ12 страниц
    FBD 1CS Cours01
    Firdaous JEBRI
    Оценок пока нет
  • Untitled
    Untitled
    Документ8 страниц
    Untitled
    nada el qaddoury
    Оценок пока нет
  • Etude de L'automate Modicon m262
    Etude de L'automate Modicon m262
    Документ4 страницы
    Etude de L'automate Modicon m262
    qwvbvkcnt9
    Оценок пока нет
  • Makefile Sur Linux
    Makefile Sur Linux
    Документ12 страниц
    Makefile Sur Linux
    boualame
    Оценок пока нет
  • Exos Corriges
    Exos Corriges
    Документ66 страниц
    Exos Corriges
    Ali Chouaya
    Оценок пока нет
  • Le Langage PL-SQL - Initiation
    Le Langage PL-SQL - Initiation
    Документ2 страницы
    Le Langage PL-SQL - Initiation
    Chaima Osman
    Оценок пока нет
  • Competences About Me: Cheikh Ahmadou Mbacke Seck
    Competences About Me: Cheikh Ahmadou Mbacke Seck
    Документ1 страница
    Competences About Me: Cheikh Ahmadou Mbacke Seck
    Bamba Seck
    Оценок пока нет
  • Article
    Article
    Документ16 страниц
    Article
    sara chaouki
    Оценок пока нет
  • Présentation M2 - Chapitre3
    Présentation M2 - Chapitre3
    Документ32 страницы
    Présentation M2 - Chapitre3
    LORD WALID
    Оценок пока нет
  • Couche DB
    Couche DB
    Документ19 страниц
    Couche DB
    Améth Ndiaye
    Оценок пока нет
  • Cours 5 - Tolérance Aux Fautes
    Cours 5 - Tolérance Aux Fautes
    Документ44 страницы
    Cours 5 - Tolérance Aux Fautes
    mor ndiaye
    Оценок пока нет
  • Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
    Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
    Документ60 страниц
    Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
    maroua
    Оценок пока нет
  • Nouveautes ASP - NET MVC 3
    Nouveautes ASP - NET MVC 3
    Документ33 страницы
    Nouveautes ASP - NET MVC 3
    Nicolas Esprit
    Оценок пока нет
  • Corrigee Info de Base Questions de Cours
    Corrigee Info de Base Questions de Cours
    Документ4 страницы
    Corrigee Info de Base Questions de Cours
    Alphonso premier
    Оценок пока нет
  • Amina's Rapport
    Amina's Rapport
    Документ23 страницы
    Amina's Rapport
    Assaad Gamer
    Оценок пока нет
  • Parser Un Format Simple
    Parser Un Format Simple
    Документ17 страниц
    Parser Un Format Simple
    Mouhamed Rassoul Gueye
    Оценок пока нет