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

|  

  


 &"# + 
 



  
 
! "#
  $"# % &"#

 &"# '

! (
  )*

4 |  

  


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



 ,
 *
 
 "



 


 
 ,
 *
"
  
-.

/

_ |  

  


!1  &"# 3

0
1 .
 '
 
0 (
   &"#
 

 , 2 (
   ' 
!
 &"#

h |  

  


 &"# -

  
4 !! 

! "#   &"# 



 &"#  0'

" 
"0 " 

 |  

  


!  &"# 
 3

Front end
application Program


. #1
Invoking
PL/SQL  v   
PL/SQL
PROCEDURE 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/ Triggers
Programs

Procedures Functions

4 |  

  


1 )*
 &"# '* 
!
  ,  
,


!
 ' '!


! 02 1 01
 
 ( 

2
'  &, 
! '1   '1  , .

>
 '  01
  
!
'* , 



)
! 
  .
   

! 0  

_ |  

  


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


! ',, , ! '1 
 

h |  

  


*

 , 
 '=

/! 
  ' 0'4    


01  
,   5
' '=

 |  

  


/
/!  &"# )* !! 
 , 

1 !0  ,
0
!
/! ! , 

 ' ,  ' 

 
!
 ' 1
, 
 .

 ' 0* '1  

1

 |  

  


. PL/SQL Language Features

 |  

  


B ,  &"# )*
5
0? 
 0!: 7' 


)

='

 0? 
 5
 
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


, 
 '  ',
! 
A
 0


1
A1  
H
  '  01
 
 .

A
 5
  
 

h |  

  


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

 !
 '
 'J%:
! 0 , 3
)-B ;
5)A"?<G/G/G/? ;-: ++ 

9
    3
-;5: ++  )*  
5)A"?<G/G/G/? ;-:
-;5:

 |  

  


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


 'J%: 
 

! 
)-B ;
5)A"?<G/G/G/? ;- MM 
: 9
-;5: ++  )*  
5)A"?<G/G/G/? ;-:
-;5:

 |  

  


<
+

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
 +

"1 


? 1
A
!?'


/
 ?
!
; ?

;.
? 1

4 |  

  


0 

/?!
/? 

/?'
!
 
 
!
>.


!.

_ |  

  


- 
 

"# -A
"# <5-

h |  

  


<
! + 

5-<5-
B-/-"/
-"/
;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

4 |  

  


"-
/  
  

"1
. 
"-
>-;  
 />-;



:
>-;  
 />-;



:
- "-



:
-;5 "-:

_ |  

  


 


-.
 
, 


 
 1
 


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

h |  

  


<<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 :

4 |  

  


> - <<
> -  

<<
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:
 ,:

4 |  

  


6. Stored Sub Programs

44 |  

  


 0
 , "'
A  !
0 A

"
   .
' ,

"
  5
' '=
 
! 0
"
1

H

4_ |  

  


/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 
5-"  ?
5-" G"-?"<G-
5-" G"-?<)S-/"
5-" G"-?5--;5-; -"

h |  

  


4 "
 


h |  

  


"
 

;  
  &"# )*
"! 
 

 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    
) 
#

h |  

  


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"-?"<G-
5-" G"-?<)S-/"
5-" G"-?5--;5-; -"
5-" G"-?-<"

 |  

  


7. Cursors and Data types
mas in L)

 |  

  


E/V-

DATA DICTIONARY
Declare
DESC EMP
V_SAL EMP.SAL%TYPE;
..
SAL NUMBERm7,2)
.

;GA)-_4

 |  

  


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</V-
5
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
 
 )
! 
0 



!  

NP

 |  

  


"
  
NP

FETCH CURSOR INTO


VARIABLE

    

IS
NO
EMPT
Y

YES
CLOSE CURSOR
  


STOP

 |  

  



 
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'
/ !* ,  
 ,  

/ 

|  

  


4 |  

  


-.

 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 

h |  

  


-.
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#)' 0
 ,

/)#$<)  <:r#)
&

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

@03 *B0  .

_ |  

  


" 

 +* 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
r#+ B
 .
  !
&#(#"$"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$?@#

! 


r#+  
'3
 &#)$ $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-
 "- -.
?

4 |  

  


-.
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-/ <;? ; /
 
  , .

 
!
!   

h |  

  


-.
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 .#
#

4 |  

  



+;
 )*

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 |  

  



+;
 )*

6 0; -5 8 -
$%
    89
;  -; 89
6
$%77  89 :
6
4!778 -; 5   89
01!/(!1
6
 77  89 
6
6
4! 778 -; 5  -  89
01!/(!1
66
#

4= |  

  


-+ "-

6 0; -5 8 -
$%
    89
;  -; 89
6
$%77  89 :
6
4!778 -; 5   89
01!/(!1
&#
 77  89 
6
6
4! 778 -; 5  -  89
01!/(!1
66
#

4 |  

  


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
)-<-
G5/-

! * , ,

3
<; -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

h |  

  


"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

h |  

  


-.
-/- / 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"-?"<G-
5-" 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 
5-" G"-?<)S-/"
5-" G"-?"<G-
5-" G"-?-<"
5-" G"-?/ BB-"
5-" G"-?5--;5-; -"

4 |  

  


Thank You

|  

  



You might also like