You are on page 1of 197

PL/SQL

|  

  



 
1 Introduction to PL/SQL
2 PL/SQL Programming Constructs
 PL/SQL Language Features
SQL in PL/SQL
5 Control Structures

|  

  



 
6 Stored sub programs
7 Cursors and Data Types as in L
h Cursors
Packages
10 Exceptions

|  

  



  

11 Triggers
12 Dependencies among PL/SQL Constructs

|  

  



1. Introduction to PL/SQL

|  

  



 &"# + 
 



  
 
! "#
  $"# % &"#
 &"# '

! (
  )*

|  

  



!
  &"# )*
 &"# )*  ,
"# "



 ,
 *
 
 "



 



 
 ,
 *
"
  
-.

/

|  

  



!1  &"# 3

0
1 .
 '
 
0 (
   &"#
 

 , 2 (
   ' 
!
 &"#

|  

  



 &"# -

  
4 !! 

! "#   &"# 



 &"#  0'

" 
"0 " 

|  

  



!  &"# 
 3
Front end
application Program

.
Invoking
PL/SQL
PROCEDURE
.
.

#1
PL/SQL



v   
5




|  

  



 &"# )*
65
7' 5
 , 1 8
)
"# &  +"# "



6 -.
8
9
- :

|  

  



 0
 ,  &"#

)* 


"# 


        
 (


! 0
0 ,
;
*
,,  '  
"
1


! 

!!  &"#

 
   0
!
'
!!  &"#

'
* !0 < *

|  

  



 0
+


'
1
"
 
! 

1 0'  <&"# 
"
  
 
 
 * "
    /   
"
    0' 
! 0  
' '=
 
  1
 .


|  

  



;
 , )*

)* 
!
! 
! )*
"' )*   
 !
!  
1
 '* ,
!  1
.
/! 0'  
!  '*  0

!  ,
!
'*
; 

  ' , 
 '*

|  

  



2. PL/SQL Program Constructs

|  

  



 &"#  




Anonymous
Block

Packages

PL/SQL
BLOCK
Stored
Procedure/
Programs

Procedures

Triggers

Functions

|  

  



1 )*

 &"# '* 
!
  ,  
,


!
 ' '!


! 02 1 01
 
 ( 

2
'  &, 
! '1   '1  , .

>
 '  01
  
!
'* , 



)
! 
  .
   

! 0  

|  

  



"
  
;  &"# )*
"
  5
' <'=
 * /'47 4  .4 "(4
"11
"
 
!  1
 .
' ,
 ' , '1 
!  &"# '*
< 1  '!


! ',, , ! '1 
 

|  

  



*

 , 
 '=

/! 
  ' 0'4    


01  
,   5
' '=

|  

  



/
/!  &"# )* !! 
 , 

1 !0  ,
0
!
/! ! , 

 ' ,  ' 

 
!
 ' 1
, 
 .

 ' 0* '1  

1



|  

  



. PL/SQL Language Features

|  

  



B ,  &"# )*


5
7' 

0? 
 0!:
)

='
5
 
0 , /'

 0? 


 7'
, 
! %@"<//@:
, 0? 
 % @A;B-@
!
 
  
%C ! %@"<//@:

 
  
%C ! %@"<//@:
- ,:
- :


|  

  



. G

!
 "

!'
 '
!    
;
" !
 * D4E4F4
4


/  
0 !1! ++ ,   
 &C9C& ,

  

5

-01 


  &"# )*  
  :



|  

  



7'

=


, 
!  0 , 0'

, 
 ! 0
!

 '    &"# '*

! 0' 
'  ',
! '   '*
" ,
! 0'  
!
! '*

|  

  



+ 
,

  ,   ! 
'  ,  0
 

! 


!  !'

 !0 H    


 !


   !'
+I  +H
"1' * D  F  ?    
 "
   ; 0


|  

  



5
 /1

0 5
 /1
; ;'4 

!
 !47!47!4 
5

)

 5
 /1
 4/'


4

|  

  



5
 + -.
"1
. 
7' ; 5
 /1 6 5-G / 8
6 ;</ ;G 8 6 ;G 8:
-.
"1 ;'_4:
> ;'_4 ,
:
5 ;'_4J%:

_

|  

  



5


h


, 
 '  ',
! 
A
 0


1
A1  
H
  '  01
 
 .

A
 5
  
 

|  

  



"  7'
1 , 7'
In nested Blocks
5
 'J %:
)-B ;
99
5
++  )* "


 'J%:
)-B ;
5)A"?<G/G/G/? ;-:
9
-;5:
++  )*  
5)A"?<G/G/G/? ;-:
-;5:


|  

  



!
 '

! 0 , 3

++ 

    3

)- KK 9 LL
KK
LL
5
 'J %:
)-B ;
99
5
++  )* "


 'J%:
)-B ;
5)A"?<G/G/G/? ;- MM 
:
-;5:
++  )*  
5)A"?<G/G/G/? ;-:
-;5:



|  

  




 

! 

9

<
+

J% 
! 

   &"#
-. J%:
 

! 0' :
5
 J%:
 

! 0' N5
2
)1 ,
+
H 0'  
  
0 ,

! 

1 ,
! 0'

|  

  



<


!
 <

C 4 & 4 $ 4 + 4
 <


 <

K4 K%4 L4 L%4 %  O%  KL  P%
" ;G 4 Q-4)-/--;4 ;
 <

;</4;54 <



|  

  



)
++




;'
!

0
5

- 

<
!

|  

  



;' 


=

<G;5
/G;
A<5
<-4"#/
<"4" ;4/;4 <B4

|  

  



!
 


 4 G4 

 4 

4 

"'
4 


!
4/


|  

  



5
 +


4

"1 


? 1
A
!?'


/
 ?
!
; ?

;.
? 1

|  

  



0 


_

/?!
/? 

/?'
!
 
 
!
>.


!.

|  

  



- 
 

"# -A
"# <5-

h

|  

  



<
! + 




5-<5B-/-"/
-"/
;7
G"-

|  

  



. SQL In PL/SQL

=

|  

  



5
 
0   &"#
"# "




! 1  , 
 
0
  &"#
! 
  ' 
0 
!
! ! , "
"




!   ;/< 
 &"# )*     5A 4/    
55  5
  
1

|  

  



;/< 
Data From SQL into PL/SQL
"1
. , "- -/ 


  &"# 
"- -/  6
8
;/< 0' 6
8
<A
' 6
8
6>--  
 8
"# 
 
0 "- -/ 

 &"# 
  + ;/< 

=

|  

  



;/<  + -.


5- 0? 0!:
0?  ':
)-B ;
"- -/ 4 

;/< 0?4 0? 
<A 
>-- %__hh:
'?


?0?MM2 * ,
NMM0? :
-;5:

=

|  

  



-. 
5- 0? 0!:
)
"- -/ 
;/< 0?
<A 
>-- 
%:
 :
!
  
!
! (13

! (1 * ,
!  
!
1
* , 
  3

! (1 * ,
!   1 * ,

 3

==

|  

  






"



  &"#  
0 1   



"- -/  ;/<  ! 

-( ' ,  
 0' 

" 
' 

1
<  , ,
 , 



 

 
 
 0' 

|  

  



5A   &"#
r 
 


 


         
    ! "#$#%!&'
         

5A    ' .

!!  &"# 
!
1
 ,
 
! 1
.
5A   
' 
 


=4

|  

  



/   &"#
v#"(!)#
* 
 '
r#+
    ,-./
  0'

1 
12- 
*03

0
1
# v

=_

|  

  



 "'


 7'


!  , 

-.

J%0:
"
C ,  ! 
% :


 
0  4  4 :
"# C  G" , 

 

 
!
!  ,  N

! 0 ,
J2

=h

|  

  



>
0'
,  ' 0'
G
"# JL7 R ;GA)- ++  0'
"# JL-R-G/- JRJ% ++ , 

"# JL ;/ R ++, 


 "#

" + " ,

=

|  

  



) 0' + -.


 &"# )*
)
J%J.: ++
  ' 0'
J.J%J. $ : ++ 
 0' .
 :
 &"# )* 
'
'?


? J.: ++
 
 :

|  

  



5. Control Structures

|  

  




 "


)1 ,

 ,   (
  + -.

! 



 ,

! 
!

  '
,  ( ' 
!   1 
,
! 
 


 
 "



 



|  

  



 
 "



)!
! .
 '1 !*
!  

 '    



/1 ,  


 0' 
9/>-;9-;5 
9/>-;9- "-9-;5 
9/>-;9- " 9-;5 

|  

  



 "


+-.
-. J
 7?S<)%N -Q2 />-;
7?)<;G"J%:
-;5 :
-. J
 7?S<)%N" -"A;2/>-;
7?)<;G"J%:
- "7?)<;G"J%:
-;5 :

|  

  



 />-;+- "#4 5
 678r 9&!(#&:! ' $;#
6r8 <& 
#(&#
 678r 9"(#)=' $;#
6r8 <& 5
#(&#
6r8 <& -
# v 
# v 

|  

  



- "  +-.
-. =J
678r 9&!(#&:! '$;#
6r8 <& >
#(&678r 9"(#)='$;# 
6r8 <& 5
#(&678r 9! !(?&$'$;# 
6r8 <& 
#(&#
6r8 <& -
# v

|  

  



" /  


  

"1
. 
">-;  
 />-;



:
>-;  
 />-;



:
- "


:
-;5 "-:

|  

  



 


-.
 
, 


 
 1
 


<<9-;5 <<
> - 9 <<9-;5 <<
<9 ;9 <<9-;5 <<

|  

  



<<9-;5 <<
<<
9
9
-;5 <<
"


 '
 <<  -;5 <<  ' .
 

  ,
1
G -R /



!   

|  

  



-R /
<<
9
-R /:
9
-;5 <<
9

4

|  

  



-R / >-; + -.

9
-R / >-; ;/L:
9
-;5 <<:
 ;/L />-;
5)A"?<G/G/G/? ;- N-.  
2:
-R /:
-;5 :

|  

  



> - <<
> -  

<<
9
-;5 <<:
"


 '
 <<  -;5 <<  ' .
 !
!
 
 

/
!  
   ' 1 +
 0 ,
 

4

|  

  



< <<
< 
 ; 6-7-"-8


?0  ,?0
<<
9
-;5 <<:


 <  0'
"  
!
! 

4

|  

  



< << + -.


8) 0  -..- (88@
*. 0'
# v (88@
8) 0  )#6#)&# -..- (88@
*. 0'
# v (88@

4=

|  

  



;G + "



 &"# 



  
!
) 1
,
! 


! .
 
!
.
 1
!
-.
, %
!
;G :

'?


? N  
(
 2:
 ,:

|  

  



6. Stored Sub Programs

44

|  

  



 0
 , "'

4_

A  !
0 A

"
   .
' ,

"
  5
' '=
 
! 0
"
1

H

|  

  



/1 , 

 


 


4h

|  

  



4 "
  

4

|  

  



5,,
A  , 

mIN, OUT, IN OUT)
; 

/  
0

! ' 
<G/ 

1 

0

!  0

; <G/ 

G  '
!
! 

   1 ,
! ' '*


!  '*

_

|  

  



; 

/* 


! ' 
 

,    
,

  ; 

   

 ; 
 2
' 
  
! '

/! 
 

 ' 0'4 
   .
"! '  
H 0'

|  

  



<G/ 


! 



!  0

 

A  <G/  , .
1
<G/ 
  , 
!
! 



/! 
 

A
'  0'
"! ' +
H

_

|  

  



; <G/ 

"  0 

  ,
! ' '*
 

A  ; <G/  , .
1

  
   



/! 
 

A
'  0'
"! ' 
H

_

|  

  





!  
-/- 6< - -8 <-5G-   
6 
 6A<5-8 5

14
 
 6A<5-8 5

14
98
"&"
6 ?0' 5

18
 &"# )*

_=

|  

  



|  

  



  + -.



     
0
0? ; '4
0? <G/ 0!4
0?=' <G/ 0!

'

4='

 0?40?='
, 
! %0?:
 :

_4

|  

  



0*
!  
/ 
!   T
0U
<G/ 



! ; 
  

"# JL0'  0!


"# JL0' =' 0!
"# JL .
 
0__hh4J4J=':
G  ;/ 
 *
! 


"# JL ;/ ;A"# JL ;/ S<)

__

|  

  



0*
!  
/ 
!   T
0U 
! ; 
   <G/

 ,  1 '*
5
0? 0!:
0?=' 0!:
)

0__hh40?40?=':
- :

_h

|  

  



0
!  
"1
. 
5< <-5G-  ?:
-.
   
0:

_

|  

  



5
 5
1 7 

h

5-"  ?


5-" G"-?"<G5-" G"-?<)S-/"
5-" G"-?5--;5-; -"

|  

  



4 "
 


|  

  



"
 

;  
  &"# )*
"! 
 

 0
G * )
+ ,


 '   ,
  
 ,

0*  
, .
; 
 


  
 0* ,


h

|  

  





! 

"1
. 
-/- 6< - -8 G;/ <; ,
?
6 
 6A<5-8 5
?
14
 
 6A<5-8 5
?
14
98
-/G; 5
?
1
"M"
 &"# )*:

h

|  

  




 "



-/G; 
?
1
<1
1 !
 ' ,  H ,
  
 
 ' " 

1  
 

1
 
 1  0
"! !0 

 
 



!  &"# '*
-/G; 0':

h=

|  

  



-.
"   0 10 4 * '
) * 
&
* 
r 
&  04'

 
A    
) 
#

|  

  



0*
! 

"# JL.
 J1J%
?.


  4 4 

0=4
?.4:


, 
! L
?.:

h4

|  

  



0
! 

5< G;/ <; ,
?
-.
5< G;/ <; 
?.
 0
! 
 ,
 
?.
 0
! 
 
 
1 
  



h_

|  

  





   ,

"  ,
  
 ,

"! 
!0 <G/  ; <G/ 

 
! ,
  0* , "#

 

1 ! '  
0 

1 * ;GA)-4 >4
5/
 

1 ! 
' 
 

1 !! 

 1   &"#

hh

|  

  



  7 



<-5G-

G;/ <;

0*  
 


 ' 0*  
,
.

 H   0 
  0  

 <G/ 





h

|  

  



5
 5
1 7 



5-" ,
?
5-" G"-?"<G5-" G"-?<)S-/"
5-" G"-?5--;5-; -"
5-" G"-?-<"

|  

  



7. Cursors and Data types


mas in L)

|  

  



E/V-

DATA DICTIONARY

Declare
V_SAL EMP.SAL%TYPE;

;GA)-_4



|  

  



DESC EMP
..
SAL NUMBERm7,2)
.

E/1
5
0? E
1:
9



1 

 ,

,
! 
 
1 , -A
'

!
! 


1 , " 
A 
,
! 0' 0?



|  

  



E/V- + -.
-.
5- 0 ;GA)-_4:
0 0 E/V-:
-. 
5-  E/V-:
 ;GA)-=:

=

|  

  



-. +

0 
!  , 
 1
5
7? '=:
7? 0!:
7?=' 0!:
7? '=:
7?! 
 
:
7? '_4:
7? '_4:
7?  ':
)
"
C

 0?40?40?='40?40?! 
40?4
0?40? 
99


|  

  



E</V5
1 E
1:
)

C

 1
9
, 1  

! 9
"

 , 
'  ,  
 0' 1
/ 
! 0'  
1 0'   ,
! 
41

4

|  

  



 /1

_

G , 4 


H 

1
* 

  

 , 0 '


! 5

1    0' !! ,
! 
, 
1

|  

  



 /1 + -.


v#"(!)#
$?@#B)#"8)v
   .  C$?@#
  . C$?@#'
B B
r#+
&#(#"$  
 $8B 
)8:  
A;#)# .   . ! v  D# 8
*. B .  EEB . '
# v

h

|  

  



 /1 + -.


$?@#Ar@&)#"8)v
($! <:r#)
 '
;)! <:r#)
 '
1 <:r#)
 ''
B0 Ar@
FF  0 * 1 0B Ar@
r#+
B0 .($! 5
B0 .1 
G



|  

  



 &"# /'




 ,    
 
"
   * 1
" 
; 
 ,  '
 
  1      

|  

  



 &"# /'+-.

|  

  



)
++

)
 ,
 
   &"#
' 
<G;/
-R "/";
 "/ 4 "/
;-R/ 4  <
5- -/-;



|  

  



 0
+
 5

1
!
! 

 , '
' !  
  ,1
!  &"#
'*
,
! 


  0'    1
0     
E</V- ! 
 0  0  ' ,

>, !   
0 , "#



|  

  



h. Cursors

=

|  

  



!  !1 


! 
!    
' 
!  0'
 ' 
!! 
 
! 1  
! 

/1 1  
 
 
 

 , 


 &"# ,
! 

 5A 




|  

  




 -.



>   
 '1 <
"1
 , 
A1  
1 , ,
!  5A 

-.

5, 4;   '1 

 '1 

4

|  

  



 

'
+ 

"# E<<G;/
;' ,   ,,
 '1
! 

"# 



"# E<G;5
/G- ,
! 

"# , 1 
"

 /G- , "# E<<G;/  KL
"# E;</<G;5
/G- ,
! 

"#  2
, 1 
"


 , "# E<<G;/  %  "# E  ,
"# E "<-;
 1  "- ' 
  '
,

!  ,

 


_

|  

  



-.
v 0
* >'
r 
 D 
   1     
1HC1' 
*. HC0'
1
1HC1' 
*. I B 31
 9EE'
1


h

|  

  



"
  
START
; 
  

DECLARE CURSOR
v  
 
    



OPEN CURSOR
 


NP



|  

  



)
! 
0 



!  

"
  
NP

FETCH CURSOR INTO


VARIABLE

    
IS
EMPT
Y
YES
CLOSE CURSOR
  

STOP

|  

  



NO


 
1

!  
 0'

!
! 
 , 
0 


!  &"# 0'
5

1 ,
! 0'    

 ,
! 
7'  '   E
1 ,    0 

,
    

|  

  




 
1
#4
v 0
"B0
  0  1 
0 0B0CB
r 
G.
 
   
#4
v 0
G.
   .  CB
 .CB
r 
G.
 0B0  


|  

  



-.
 

'

E<<G;/
;' ,   ,
!  , '1
! 
E<G;5
/G- ,
! 

,
! 
 ,
1 
E;</<G;5
/G- ,
! 

,
!  2
, 1    2

0 

"

 /G- , E   " E "<-;
"! 
! 

 ,
! 
/G- , 
   
  "-

|  

  



 

'
+-.

|  

  



 
! < 
  ?0' ; ?
<<
9
-;5 <<:
; 
/ 
!  ?0'
/ <
/ 
! 
  ?0'
/ !* ,  
 ,  

/ 

|  

  



|  

  



-.
 0
0 0  0,1     - *B 
* 
*. IFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFI'
*. I&. .&B I'
*. IFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFI'
8)  0  0
(88@
*.  0C0EEIIEE  0. 
EEIIIBIEE  0.'
# v(88@
*. IFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFI'


|  

  



"' (  < 


<  ?0'  "' (1
<<
9
-;5 <<:
; 


!    0'

4 ,
!4 !* , 
14 

|  

  



-.

r 


 ,    
! , 
8)  0   0,1     - *B'
;


! -.
 

'

(88@
G..
# v(88@
#

|  

  



 
! 

v 0
0 0* '
  00,'01     
  0 0CB
r 
  0-'  FF)    - B 
1 0 0  0
*.   0.0'
0  0
  0 '  FF)      B 
1 0 0  0
*.   0.0'
0  0




|  

  



*

*
! 
 
0 ,  

; 
 (
     
 

G T< G5/-U   "- -/ 



/ , 
1 ,
!   T>-- G-;/ < 
U

|  

  



< G5/ Syntax is


"
9
< G5/- 6< < GA;8 6;< /8
*
! <" '  ,  

<
! 2 (
,
!   *  ' 
! 



*  '   '*&

-.
"- -/ C <A -A >-- 5-/;<%
< G5/-:



|  

  



>-- G-;/ <


Syntax
>-- G-;/ <  :
G  G 
  5
  
,
!   
1 ,
! '1
! 
;  
 ,   
 ,
! *  
-.
5- -/-  >-- G-;/ < 1?:



|  

  



-.
v 0
"B0&
&  0,1     -
8)<@v!$#
0  0B0CB
r 
G.
#$";B0 $80  0
   0 -
A;#)#"<))# $8B0
GG

=

|  

  



. Packages

|  

  




 

 *
B 
 


!  
   '=
+ *

  
7'
"'  * "'


 

   &"#   



4

|  

  



 0
 , *
A 
1

      *
  


,
0     
,
  
 

"!' '=

 ' ! '1 1  




A * &<
 
!   

! 1 ! 
 , ,
! ,



_

|  

  



 0

-.
  

1
 
 ,
1 0   
! 
 ' 
"
1
5  
! 
, 
   0
! 
' '=

B' 
5 0'  ' , 1 !
5
 
!!

! 
<0 
   
! * '   

! 
 '


h

|  

  



* +


;
  
 

 * 
! 
! *  
 



 2
'   *

! * 
1  
'
*  ' , '1 0* 1 ,
! 
  

! * 
1



|  

  



*

 ,
! *  ,
G
! *   1  
,

    
,
"
   

 N2

 , * 00
 

* ",
+> 
  
 '
>/ 

 ,3
* ) 1

& ,
! ,

 !
! 

 
!

'
! ! 



|  

  



* ",

Syntax
-/- 6< - -8 QB- *?
"
7' 5
:
"'  !  ,
:
-;5 6*?8:

|  

  



* ",

&B4
")#!$#J8))#@(!"#K@!"=!+#03 
&
6* v 0
&*@   010
# vJ03  K
#4
")#!$#8))#@(!"#@!"=!+#*03
&
* <:r#) 
@)8"#v<)#   *  <:r#)'
# v*03



|  

  



* ) 1
 0'  '       
! ' 1
/!1  

! * ' 1 +0


")#!$#J8))#@(!"#K@!"=!+#r8v?03 
&
0*  0
0* 0
03 * 1
# vJ03  K



|  

  



* ) 1
-")#!$#8))#@(!"#@!"=!+#*B*03
&
5 @)8"#v<)#   *  <:r#)'
>
&
/  <:r#)
 r#+


&#(#"$0

 $8*
L
)8: 
-
A;#)#   
--
* ,. M*
-  # v   *
-5,# v*03
&N(2O
@03 *B0  .

=

|  

  



, * '=



&N(2#%#"<$#*03.* -
&N(2#%#"<$#*03.   *

'
r#+
*03.* 
*. *03.*'
G.
*03.   *
5L'
# v

|  

  



'  0
 A'
5
  * ,
  ' '
  , ' ,
 * ' 1 
! 
   *  0'4 '
 0

' 1 
!
! ) 1  
  , '
0
 '

4

|  

  



0
 A' +-.
-")#!$#8))#@(!"#@!"=!+#*B*03
&
5 <:r#)
>< "$8      <:r#)'
/)#$<)  <:r#)
&

r#+
&#(#"$
L $8
-)8: 
--A;#)#   
- )#$<) 
-5# v
->@)8"#v<)#)#$)#6#r8 <&  <:r#)'
-/&
-r#+
-
*     ',.
- # v   *
-L,# v*03
&N(2O
@03 *B0  .

_

|  

  



0
 ,


" 

 +* 0'
G  ' 0'
' , 1 !

H
     
5
  

!!

! 
" ,
! 0  ,
! 

7  '1   2
' ! & 
' '1 
! 

h

|  

  



0
! *
/ 
! * ' 1
5< QB- )<5V *?
/ 
! * ! 
5< QB- *?
,
 0
! * ' 1 ,
! .
 !   ' 1  '


)
,
 
 ! 
! ' 1  '   0



|  

  



<0 
<0  
! 
, 
!  
<0  
 '   
  ! ' 
!
* ' 

< "$8 0 B  <:r#)'


)#$<)  <:r#) 
< "$8 0 B  6!)";!) Pv!$#'
)#$<)  <:r#)
@)8"#v<)#FP*6!)";!) '
@)8"#v<)#  6!)";!) FP*6!)";!) '

=

|  

  



<
 1  
#4
")#!$#8))#@(!"#@!"=!+# 03
&
 0 <:r#) 
@)8"#v<)# 
# v 03

|  

  



<
 1  
")#!$#8))#@(!"#@!"=!+#r8v? 03
&
@)8"#v<)# 
&
r#+
vr:&8<$@<$.@<$( #9 .1) 0IEE 0'
# v
B
 .
  !
r#+
  ,
! ,


&#(#"$"8< $,'
 $8 0
)8:v#@$
# v

=

|  

  



-.
"# L -R-G/- 
?*
? 

; ,  =
"# L ;"-/ ;/< 5-/ 7 G-"4@<
@4@;V@:
"# L "- -/ <G;/C <A 5-/:
<G;/C
++++++++++

"# L -R-G/- 
?*
? 

; ,  =

=

|  

  



 
0  ,

 
!  
0
>
 

1 0 ,
! * ,

BA -"/ /?---;-" ,
?4;5" 4;" 4
;5"4 ;"
;5"4;"
 

,
  
 
'  *
0'
;5"4;"
 

,
   
'  *
0'

==

|  

  



)
 *

5)A"?<G/G/
G/ ? 5)A"? -/
5)A"? <Q
5)A"?S<)
5)A"?"-"" <;

|  

  



10. Exceptions

=4

|  

  




 
 + -.

1 '  


!  .
 ,  &"# )*  
-.

1 , !  
 

=_

|  

  



-.
 )*
Syntax
9
-R-/ <;
>-; ?,?.
 />-;
!   &"# 



>-; ?,?.
 />-;
! 
-;5:

=h

|  

  



-.

1  &"# '*  !0 
   .
 '*
-.
 '* 

; ,
! .

! 
>;5 - .
! 

 ' , !  
-.
  

 0
! 
  


=

|  

  



; , -.



! - 
'
1 
 .

! 
'*
< )Q
, -.
  > 
"

! 

"0
!    ,
/,
! 

 .
 ! 
"
! /
 ,   

  , 

|  

  



5


<'0  .

! ,   
v#"(!)#
 #:@.#:@ 8C$?@#
r#+
 &#)$ $8v#@$6!(<#&//8  ?'
&#(#"$ 
 $8 
)8: 
A;#)#  9  
vr:&8<$@<$.@<$( # '
# v


!  


 3

|  

  



+ , -.




 &"# , .



"  

!   .
 !  

1
G !
 5- ;- 
+ ! 
; 
 5- -  ;7<Q-

;? 
?,



    

/?1?


 

  

|  

  



-.
v#"(!)#
 #:@.#:@ 8C$?@#


! 


 
'3

r#+
 &#)$ $8v#@$6!(<#&//8  ?'
&#(#"$ 
 $8 
)8: 


! 

 3

A;#)#  9  
vr:&8<$@<$.@<$( # '
#%"#@$8
A;#  8v!$!8< v$;#
vr:&8<$@<$.@<$( #9 B 1'
# v


|  

  



! <
!
G!  .
  '
 
! </>-" 
1

#4
G..
#%"#@$8
G..
A;# 8$;#)&$;#
vr:&8<$@<$@<$( #&N("8v#'
vr:&8<$@<$@<$( #&N(#)):'
# v
!  &"#  .
4 !   !  , , !  

, </>-" !   .

G "# <5-  "# -A
 

!     

|  

  



G , -.



5 '1   
Q ,  
A 

  L   0


G !

5- 5- ;- 
;7<Q-

|  

  



G , -.



 5
 )* + 5- -.
? -R-/ <;:
 -.
 )* 5- ;>-; -.
? />-;
> 
 -.
 )* ;7<Q "- -.
?

|  

  



-.
v#"(!)#
0#:@.0C$?@#
P*#:@.P*C$?@#
0#%"#@$8
r#+
GG
P* 9:! !+#)! v02/'$;#
)!&#0
# v
G..
#%"#@$8
A;# 0$;#
G.
# v
_

|  

  



;+ , -.




;  
, '1  &"#
 &"#  
, ! .
   
!   
G !
   , 
4   .
  ,
! 
G 

5- -  5- ;- 


;7<Q ;B   ,
   
G  -R-/ <;? ; /
 
  , .

 
!
!   

|  

  



-.
v#"(!)#
H 0#%"#@$8
@)!+:!#%"#@$8  $H 0F-'
r#+
G..
 &#)$ $8v#@$6!(<#&-I0 II"!I'
G..
#%"#@$8
A;# H 0$;#
vr:&8<$@<$.@<$( #I0 40 I'
GG
# v

BA -R-/ <;? ; /



  T( 

U 
!
!    +

-.
 
 4 !   
0*


|  

  



 "-  / <; -<


G
 
 ,  
G.
)!&#!@@("!$8 #))8)F -I" 03"6I'
G

#))8) -
8)!F -" 03"6

4

|  

  




 +-.



 !"#
$%
&!!!'(&)**+, -,+,",.#
&!

!

/

01 
23 ,#
$&(!(!(!)
.#
4!
01!/(!1
$&(!(!(!)3
 5 .#
#

|  

  




+;
 )*

6

0; -5 
8 -  

$%
6
$%77  89 :
6

4!778 -; 5   89


01!/(!1
6


77  89 

6
6
4!

778 -; 5  -  89

66
66
#

4

|  

  




+;
 )*

6

0; -
 <
8 -  

$%
6
$%77  89 :
6

4!778 -; 5   89


01!/(!1
6


77  89 

6
6
4!

778 -; 5  -  89

66
66
#

4

|  

  




+;
 )*


0; -5 8 -


    89
;  -; 89

6
$%
6
$%77  89 :
6

4!778 -; 5   89


01!/(!1
6


77  89 

6
6
4!

778 -; 5  -  89

01!/(!1
66
#

4=

|  

  



-+ "

0; -5 8 -


    89
;  -; 89

6
$%
6
$%77  89 :
6

4!778 -; 5   89


01!/(!1
&#


77  89 

6
6
4!

778 -; 5  -  89

01!/(!1
66
#

|  

  



11. Triggers

44

|  

  



!

 3
 &"# '* 
 , 

 ' 
 
1 ,
! 

0

! , 
 
 ' , !0 
 ! +
 

! 
 , 

B
 , 

1&
1
/
 2 (

 
  



4_

|  

  



; ,  /


<  ,
! 
' '=
    
! ! , 


!
 
!
! , (

   
.


4h

|  

  




 , /
/

!
 ,
 ,

! (
 ',
! 
(

/ 0

 !
0

!
 
 ' ,
 

& 
& 

/' 
; ,
!
' , !!
 

4

|  

  




 , /
/
1
/  
 ,
 .
   !
 
 ,
"


0   (

 0 , !  01  


,,

  .

! 
 
   ,
 

  1 ,  0

/ ' 1
-. !

 '  
!
 

_

|  

  



5
' /
-/- 6< - -8 / BB-
?
)-<-&/-
;"-/ 6< 5- -/- <
G5/- 6< < GA;"8 8
<;
'?
 &"# ) <Q:

|  

  



5
' /+-.
-/- / BB- !*?
/-
G5/- < "
<; -A
)-B ;
;"-/ ;/< <B?> Q-> Q-5/-4G"-?;A-
7 G-""V"5/-4G"-:
-;5:

_

|  

  



5
' /+-.
> 1

! 0
 
.
 , 
! = 1
 ' , 1 !*3

!
 ! 
 
 
 ,
! 1 !*4 *
 ,
!  ' , !*4
 1 

! 0 13

_

|  

  



"


0   0 /
5   !
 
 ,
"


0
  (

 0
, !  01  
,,

 ' 1  .


_=

|  

  



 0 /
")#!$#J8))#@(!"#K$)++#)
r#8)#O!$#)
 &#)$J8)<@v!$#8)v#(#$#K
8 *  
J)##)# " +8(v!&E #A!& K
8)#!";)8A
JA;# 0K
@(O&N(r03

|  

  



 0 /
")#!$#$)++#)3  B
!$#)
<@v!$#
8 #:@
8)#!";)8A
r#+
 &#)$ $8(8+;=##:@#:@ 8@)#6&!("<)&!('
6!(<#&8(v.#:@ 88(v.&!( #A.&!('
# v

_4

|  

  



 0 /
")#!$#8))#@(!"#$)++#)$)!$#)
<@v!$#
8 #:@
)##)# " +8(v!&@)#6&!( #A!&"<)&!(
8)#!";)8A
A;# @)#6&!(.78r I"(#)=I'
r#+
 &#)$ $8;=#:@;&$)?#:@ 8@)#6&!("<)&!('
6!(<#&@)#6&!(.#:@ 8@)#6&!(.&!(
"<)&!(.&!('
# v

__

|  

  



(
+ 5
!0 1 !*     0 '1 E

!
 0
! '3

0   0  3 0


* 1  1 
1 0
* 
   0 0,-.-    . 


_h

|  

  



A

 -  /
!
! 
 , 
!  (1    

 


 
-.

!
 

 ,  
 0
, 
1
 

!   *
'1  
  

 

_

|  

  



 0 /
-/- / BB- ?!*? 0
)-<
! * , ,

3
G5/<; -A
< -> <
)-B ;
;"-/ ;/< <B?> Q-?-A-A;<4-7" 4G" 
7 G-"J< 5-A;<4J< 5" 4J;-" :
J;-<AAJ%:
-;5:

h

|  

  




 , /
/  

 , /'  
, 0 

 ,
  ' 1 , 0   
,
'
B
, , 1 5A 
 (
 0
! 0

 ,  
 0 4  ,
  '   ! 
 ' , 
!
 ' 1

|  

  



"1
.
-/- < - - / BB-
?
;"/-5 < 0
<; 0 ?
 &"# )*:
! 0

! 5A 0
!!  (

  

! 0 ?

h

|  

  




 ,

-/- < - - / BB- /B
;"/-5 < ;"-/ <;  -?7 -
)-B ;
;"-/ ;/< <BG"-?;A-45/-
7 G-"G"-4"V"5/-:
-;5:
&

h

|  

  



"1
 /
  
! ,  0

55
-/-4 /-  5<
5
' 0

0 

&!
 
 &,,

h=

|  

  



"1
.
-/- < - - / BB- /?
6)-<- M/-8
6  0

M 
'?0

8
6<;M 5/)"-M 6!86">-A8
6>-;  G"-8
6
?' 18

|  

  



-.
-/- / BB- 

??

/-
<B<;
<; "<// !
>-; 
?!"V"5/-4@ 1@ 
 @@4@
@
)


  041 
:
 :

h4

|  

  



-.+55

-/- / BB- 

? ?

/-
-/- <; !
)


  0 41 
:
 :

h_

|  

  





  /
/    
 
/
 2 (

 
  



,
!

  ' 
! 

  '*
0 
&,
 A



hh

|  

  



0 /
5< / BB-
?
5< / BB- ?
?
:
 /- / BB-
?
-;) -M5 ")  /- /) -
'? -;) -&5 ") -  / BB-"

h

|  

  



5
 5
 +/



5-" G"-?<)S-/"
5-" G"-?"<G5-" G"-?-<"
5-" G"-?/ BB-"

|  

  



12. Dependencies among PL/SQL


Constructs

|  

  



5 
 , <'=




!    ' 1 , 


'4     


' 
'  , '1  
    
'=
!!   
'
/'  , '=


 , '1 


! '=

, , '=
  ,  
'=
 ,,


|  

  



5 





 ,
 G; 0* <
<  

 ! ;<


A* G; 

  ! 
 


 ;7 5
 /- G;/ <; G; <A "1
 /- G;/ <; ,
? <A  /- <-5G-  ? <A  /- QB- *? <A - QB /- QB- *? <A - )<5V
 /- / BB-
?
6-;) -M5 ") -M<A -65-)GB8

|  

  



5  + *


* ' 1   
 ! 
!  ' 1 2
,,
,

)
!  !  ,,

! ' 1  
 ' 

 

=

|  

  



5
 
 5 
5
  .
,  
'=
  
!  0
  ,  
'=
 


 ,,
0 

  .


|  

  



5
 5
1 0 

4

5-" G"-?<)S-/"
5-" G"-?"<G5-" G"-?-<"
5-" G"-?/ BB-"
5-" G"-?5--;5-; -"

|  

  



Thank You

|  

  



You might also like