ÿþI D Z D O
I D Z D O
P R Z Y K £ A D O W Y R O Z D Z I A £
P R Z Y K £ A D O W Y R O Z D Z I A £
O r a c l e P L / S Q L .
S P I S T R E C I
S P I S T R E C I
W p r o w a d z e n i e
K A T A L O G K S I ¥ ¯ E K
K A T A L O G K S I ¥ ¯ E K
O r a c l e P L / S Q L . W p r o w a d z e n i e
K A T A L O G O N L I N E
K A T A L O G O N L I N E A u t o r z y : B i l l P r i b y l , S t e v e n F e u e r s t e i n
T ³ u m a c z e n i e : B a r t ³ o m i e j G a r b a c z
I S B N : 8 3 - 7 1 9 7 - 7 2 7 - 1
Z A M Ó W D R U K O W A N Y K A T A L O G
Z A M Ó W D R U K O W A N Y K A T A L O G
T y t u ³ o r y g i n a ³ u : L e a r n i n g O r a c l e P L / S Q L
F o r m a t : B 5 , s t r o n : 4 1 2
T W Ó J K O S Z Y K P r z y k ³ a d y n a f t p : 1 1 8 k B
T W Ó J K O S Z Y K
P L - S Q L j ê z y k p r o g r a m o w a n i a s y s t e m u O r a c l e , p r z e z n a c z o n y d o t w o r z e n i a p r o c e d u r
D O D A J D O K O S Z Y K A
D O D A J D O K O S Z Y K A
m a g a z y n o w a n y c h z a p e w n i a o g r o m n e m o ¿ l i w o c i p i s z ¹ c y m o p r o g r a m o w a n i e b a z
d a n y c h . P L / S Q L r o z s z e r z a s t a n d a r d j ê z y k a r e l a c y j n y c h b a z d a n y c h S Q L p o p r z e z
u m o ¿ l i w i e n i e k o r z y s t a n i a z t a k i c h k o n s t r u k c j i , j a k : p ê t l e , i n s t r u k c j e I F - T H E N , z ³ o ¿ o n e
C E N N I K I I N F O R M A C J E
C E N N I K I I N F O R M A C J E
s t r u k t u r y d a n y c h c z y s z e r o k i e m o ¿ l i w o c i k o n t r o l i o p e r a c j i t r a n s a k c y j n y c h . W s z y s t k i e
z n i c h s ¹ c i l e z i n t e g r o w a n e z s e r w e r e m b a z y d a n y c h O r a c l e .
Z A M Ó W I N F O R M A C J E
Z A M Ó W I N F O R M A C J E
O N O W O C I A C H
O N O W O C I A C H
O r a c l e P L / S Q L . W p r o w a d z e n i e d a j e C z y t e l n i k o w i m o ¿ l i w o æ p e ³ n e g o z r o z u m i e n i a
j ê z y k a P L / S Q L b e z w z g l ê d u n a t o , c z y j e s t p o c z ¹ t k u j ¹ c y m , c z y d o w i a d c z o n y m
Z A M Ó W C E N N I K p r o g r a m i s t ¹ . W n i n i e j s z e j k s i ¹ ¿ c e p r z e d s t a w i o n o n a s t ê p u j ¹ c e z a g a d n i e n i a :
Z A M Ó W C E N N I K
" c e c h y j ê z y k a P L / S Q L i k o r z y c i w y n i k a j ¹ c y c h z j e g o u ¿ y w a n i a ;
" s k ³ a d n i a i p r z y k ³ a d y z a s t o s o w a n i a w s z y s t k i c h g ³ ó w n y c h k o n s t r u k c j i j ê z y k a ;
C Z Y T E L N I A
C Z Y T E L N I A
" t w o r z e n i e i w y k o r z y s t y w a n i e p r o c e d u r , f u n k c j i o r a z p a k i e t ó w m a g a z y n o w a n y c h ;
" t w o r z e n i e a p l i k a c j i o p a r t y c h n a s i e c i I n t e r n e t ;
F R A G M E N T Y K S I ¥ ¯ E K O N L I N E
F R A G M E N T Y K S I ¥ ¯ E K O N L I N E
" z a b e z p i e c z a n i e p r o g r a m ó w w j ê z y k u P L / S Q L p r z e d a t a k a m i z z e w n ¹ t r z ;
" k o r z y c i w y n i k a j ¹ c e z w y k o r z y s t a n i a n a r z ê d z i w s p o m a g a j ¹ c y c h p r o g r a m o w a n i e ,
p o c h o d z ¹ c y c h o d i n n y c h d o s t a w c ó w ;
" w y k o r z y s t a n i e j ê z y k a P L / S Q L d o p r o g r a m o w a n i a z a d a ñ z w i ¹ z a n y c h z u ¿ y c i e m
p o c z t y e l e k t r o n i c z n e j , j ê z y k a J a v a o r a z s i e c i I n t e r n e t .
O r a c l e P L / S Q L . W p r o w a d z e n i e z a w i e r a s z c z e g ó ³ o w y o p i s k o n s t r u k c j i j ê z y k a w e
w s z y s t k i c h w e r s j a c h o d O r a c l e 7 d o O r a c l e 9 i , p o d p a r t y p r z y k ³ a d a m i p r o g r a m ó w
d o s t ê p n y c h t a k ¿ e p o d a d r e s e m h t t p : / / o r a c l e . o r e i l l y . c o m . A u t o r a m i j e j s ¹ e k s p e r c i
j ê z y k a P L / S Q L B i l l P r i b y l o r a z S t e v e n F e u e r s t e i n . K s i ¹ ¿ k a d a j e s o l i d n e p o d s t a w y
k a ¿ d e m u p r o g r a m i c i e b a z d a n y c h i a d m i n i s t r a t o r o w i , k t ó r y z m u s z o n y j e s t d o p o z n a n i a
j ê z y k a P L / S Q L .
W y d a w n i c t w o H e l i o n
u l . C h o p i n a 6
4 4 - 1 0 0 G l i w i c e
t e l . ( 3 2 ) 2 3 0 - 9 8 - 6 3
e - m a i l : h e l i o n @ h e l i o n . p l
R o z d z i a B 1 .
P o d s t a w y j ¹z y k a P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9
Z a l e t y j ¹z y k a P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7
W y m a g a n i a d o t y c z c e s t o s o w a n i a j ¹z y k a P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3
R o z d z i a B 2 .
P o d s t a w y s k Ba d n i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8
P i e r w s z y p r o g r a m w P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0
W p r o w a d z e n i e d o b u d o w y p r o g r a m u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4
Z m i e n n e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 8
P o d s t a w o w e o p e r a t o r y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6
W y r a |e n i a w a r u n k o w e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3
I n s t r u k c j e w y k o n y w a n i a w p ¹t l a c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7
F o r m a t o w a n i e k o d u : w y m a g a n i a i w s k a z ó w k i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3
P o d s t a w y b a r d z i e j z Bo |o n y c h z a g a d n i e D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5
R o z d z i a B 3 .
I n f o r m a c j e o p r o g r a m i e p r z y k Ba d o w y m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1
P i e r w s z e z a d a n i e p r o g r a m i s t y c z n e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3
P o b i e r a n i e i n f o r m a c j i o l i c z b i e k s i |e k z a p o m o c f u n k c j i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7
T w o r z e n i e e l a s t y c z n e g o k o d u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 2
W y k o r z y s t a n i e p a k i e t ó w P L / S Q L w c e l u o r g a n i z a c j i k o d u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 8
P r z e j [c i e n a w y |s z y p o z i o m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 7
D a l s z a d r o g a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2
R o z d z i a B 4 .
W p r o w a d z e n i e d o H T M L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 4
T w o r z e n i e s t r o n i n t e r n e t o w y c h z a p o m o c j ¹z y k a P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 4
I n n e z a g a d n i e n i a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 7
R o z d z i a B 5 .
W p r o w a d z e n i e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 0
P r o s t a m e t o d a : p o b i e r a n i a d a n y c h z j e d n e g o w i e r s z a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 0
P o b i e r a n i e w i e l u w i e r s z y z a p o m o c k u r s o r a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 2
P r e z e n t o w a n i e w y n i k ó w z a p y t a n i a n a s t r o n i e W W W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 4
T w o r z e n i e s t r o n y W W W s Bu |c e j d o w y s z u k i w a n i a
z a p o m o c m e c h a n i z m u d y n a m i c z n e g o S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 8
Z a a w a n s o w a n e z a g a d n i e n i a z w i z a n e z p o b i e r a n i e m d a n y c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 5
R o z d z i a B 6 .
O r g a n i z o w a n i e k o d u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 5
N a r z ¹d z i a p o m a g a j c e w e f e k t y w n y m p r o g r a m o w a n i u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 8
R o z d z i a B 7 .
P o d s t a w y b e z p i e c z e Ds t w a w s y s t e m i e O r a c l e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4 6
O r g a n i z o w a n i e k o n t w c e l u z w i ¹k s z e n i a p o z i o m u z a b e z p i e c z e D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 5
A n a l i z a w y m a g a D s y s t e m u b i b l i o t e c z n e g o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 7
Zl e d z e n i e z m i a n w b a z i e d a n y c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7 3
S z c z e g ó l n e k w e s t i e b e z p i e c z e Ds t w a z w i z a n e z p r o g r a m o w a n i e m w P L / S Q L . . . . . . . . . . . . . . . . . . . 2 8 1
R o z d z i a B 8 .
W y s y Ba n i e w i a d o m o [c i p o c z t e l e k t r o n i c z n z a p o m o c P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 8
W y k o r z y s t a n i e n a r z ¹d z i a s Bu |c e g o d o w y s y Ba n i a w i a d o m o [c i e l e k t r o n i c z n y c h
w s y s t e m i e b i b l i o t e c z n y m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 3
O d b i e r a n i e w i a d o m o [c i z p o z i o m u b a z y d a n y c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 9 6
P o b i e r a n i e d a n y c h z e z d a l n y c h s t r o n i n t e r n e t o w y c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 5
I n t e g r a c j a z i n n y m i j ¹z y k a m i p r o g r a m o w a n i a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 7
R o z d z i a B 9 .
C y k l e i s t n i e n i a o p r o g r a m o w a n i a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 4
L i s t y o b i e k t ó w ( k o l e k c j e ) w j ¹z y k u P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 6
P a k i e t y o b s Bu g i w y j t k ó w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 9
K o n t r o l a t r a n s a k c j i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 3
K o m p i l a t o r P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 9
Z a r z d z a n i e u p r a w n i e n i a m i c z y t e l n i k ó w i b i b l i o t e k a r z y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 2
I n n e c e c h y P L / S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7 2
P r o g r a m o w a n i e a b a z y d a n y c h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 1
F a k t y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 1
W n i n i e j s z y m r o z d z i a l e o m ó w i o n o n a s t p u j c e z a g a d n i e n i a :
" I n f o r m a c j e o p r o g r a m i e p r z y k Ba d o w y m
" P i e r w s z e z a d a n i e p r o g r a m i s t y c z n e
" P o b i e r a n i e i n f o r m a c j i o l i c z b i e k s i |e k z a p o m o c f u n k c j i
" T w o r z e n i e e l a s t y c z n e g o k o d u
" W y k o r z y s t a n i e p a k i e t ó w P L / S Q L w c e l u o r g a n i z a c j i k o d u
" P r z e j [c i e n a w y |s z y p o z i o m
" D a l s z a d r o g a
P o z a p o z n a n i u s i ¹ z p o d s t a w a m i j ¹z y k a P L / S Q L C z y t e l n i k j e s t p r z y g o t o w a n y d o t w o r z e n i a p r o -
g r a m ó w b a r d z i e j r o z b u d o w a n y c h n i | z w y k Be w y [w i e t l a n i e k o m u n i k a t u . W n i n i e j s z y m r o z d z i a l e
p r z e d s t a w i o n o s p o s ó b r o z p o c z ¹c i a t w o r z e n i a a p l i k a c j i o b s Bu g i k a t a l o g u b i b l i o t e k i . W k o l e j n y c h c z ¹-
[c i a c h k s i |k i o p i s a n o s p o s ó b j e j d a l s z e j r o z b u d o w y . N o w y m i e l e m e n t a m i j ¹z y k a P L / S Q L , k t ó r e
p r z e d s t a w i o n o w n i n i e j s z y m r o z d z i a l e , s p r o c e d u r y ( p r o c e d u r e s ) , f u n k c j e ( f u n c t i o n s ) o r a z p a k i e t y
( p a c k a g e s ) . C z y t e l n i k d o w i e s i ¹, d o c z e g o t e e l e m e n t y s Bu |, j a k j e k o n s t r u o w a o r a z w j a k i s p o -
s ó b u |y w a w c e l u o s i g n i ¹c i a w y m a g a n y c h c e l ó w .
P r z y k Ba d o w e z a d a n i e p r o g r a m i s t y c z n e , o p i s a n e w n i n i e j s z e j k s i |c e , p o l e g a n a p r ó b i e u t w o r z e n i a
s y s t e m u , k t ó r y s Bu |y Bb y d o k a t a l o g o w a n i a o r a z w y s z u k i w a n i a k s i |e k w b i b l i o t e c e j e s t t o r o d z a j
e l e k t r o n i c z n e g o k a t a l o g u . W p r z y p a d k u t e j h i p o t e t y c z n e j b i b l i o t e k i z a k Ba d a s i ¹, |e w s z e l k i e d a n e
o p e r a c y j n e z n a j d u j s i ¹ w b a z i e d a n y c h O r a c l e . I s t n i e j e w i ¹c e j n i | j e d e n s p o s ó b g r o m a d z e n i a d a n y c h
d o t y c z c y c h t y t u Bó w , a u t o r ó w i t p . w b a z i e d a n y c h . J e d n y m z n i c h j e s t r ¹c z n e w p i s y w a n i e
d a n y c h p r z e z b i b l i o t e k a r z a . W k o l e j n y c h r o z d z i a Ba c h z o s t a n o p i s a n e m e t o d y a u t o m a t y c z n e g o Ba -
d o w a n i a d a n y c h z o d l e g By c h zr ó d e B o r a z m e t o d y w y s z u k i w a n i a p r z e z u |y t k o w n i k a d a n y c h z n a j d u j -
c y c h s i ¹ w k a t a l o g u .
I s t n i e j e k o n i e c z n o [ s p e Bn i e n i a d w ó c h w y m a g a D o p o d s t a w o w y m z n a c z e n i u d l a d z i a Ba n i a o p i s y w a -
n e j a p l i k a c j i :
" N a l e |y u m o |l i w i t w o r z e n i e w p i s ó w d o k a t a l o g u d l a k a |d e j n o w e j k s i |k i .
" N a l e |y u d o s t ¹p n i m o |l i w o [ o k r e [l a n i a l i c z b y e g z e m p l a r z y d a n e j k s i |k i , z n a j d u j c y c h s i ¹
w z a s o b a c h b i b l i o t e k i .
W c e l u s p e Bn i e n i a p i e r w s z e g o w y m a g a n i a n a l e |y u t w o r z y p r o c e d u r ¹ P L / S Q L , s Bu |c d o w p r o w a -
d z a n i a d a n y c h d o b a z y d a n y c h . P r o g r a m u m o |l i w i a j c y s p e Bn i e n i e d r u g i e g o w a r u n k u w y m a g a z a -
s t o s o w a n i a f u n k c j i P L / S Q L . P r z e d o p i s a n i e m s p o s o b u t w o r z e n i a t y c h e l e m e n t ó w n a l e |y n a j p i e r w
p r z e d s t a w i m e t o d y p r o j e k t o w a n i a s t r u k t u r y s a m e j b a z y d a n y c h .
P o d o b n i e j a k w p r z y p a d k u w i ¹k s z o [c i p r o j e k t ó w t w o r z o n y c h p r z e z p r o g r a m i s t ó w P L / S Q L , s t r u k t u r a
b a z y d a n y c h d o t y c z c y c h k s i |e k w b i b l i o t e c e z o s t a Ba w c z e [n i e j z a p r o j e k t o w a n a i u t w o r z o n a n a
p o d s t a w i e w y m a g a D p o s t a w i o n y c h p r z e z p r z y s z Be g o u |y t k o w n i k a . P o d z b i ó r l o g i c z n e g o p r o j e k t u
b a z y d a n y c h , z w i z a n y z e w s p o m n i a n y m i w c z e [n i e j w y m a g a n i a m i , m o |n a o g r a n i c z y d o i n f o r -
m a c j i o k a |d y m e g z e m p l a r z u k s i |k i w b i b l i o t e c e . R y s u n e k 3 . 1 p r z e d s t a w i a t a k z w a n y d i a g r a m
z w i z k ó w e n c j i ( e n t i t y - r e l a t i o n s h i p d i a g r a m , E R D ) .
R y s u n e k 3 . 1 . Z a l e |n o [ m i d z y w p i s e m ( i n f o r m a c j ) d o t y c z c y m k s i |k i a j e j f i z y c z n i e i s t n i e j c y m i e g z e m p l a r z a m i
D i a g r a m y t a k i e w z w i ¹z Be j i u p r o s z c z o n e j f o r m i e p r e z e n t u j i n f o r m a c j e o r e a l n y m [w i e c i e . O p i s a n e
w o d p o w i e d n i s p o s ó b p r o s t o k t y s e n c j a m i ( e n t i t i e s ) b a z y d a n y c h , a l i n i e p o m i ¹d z y n i m i o z n a -
c z a j z w i z k i ( r e l a t i o n s h i p s ) p o m i ¹d z y e n c j a m i . R e l a c y j n e b a z y d a n y c h p r z e d s t a w i a j r z e c z y w i -
s t o [ w f o r m i e z b i o r u s t r u k t u r d a n y c h ( k t ó r e p r z e c h o w u j i n f o r m a c j e o p e w n y c h o b i e k t a c h ) o r a z z b i o -
r u m e t o d ( k t ó r e d e f i n i u j p o w i z a n i a m i ¹d z y o b i e k t a m i ) . E n c j a b o o k r e p r e z e n t u j e p o d s t a w o w e
i n f o r m a c j e o k s i |c e ( t y t u B, a u t o r i t d . ) , k t ó r e z a w i e r a k a |d a b i b l i o t e k a . E n c j a b o o k _ c o p y z a w i e r a
i n f o r m a c j e o f i z y c z n i e i s t n i e j c y c h e g z e m p l a r z a c h d a n e j k s i |k i .
P e w n e z d z i w i e n i e m o |e w y w o Ba f a k t , |e c a Bo [ r o z d z i e l o n o n a d w i e e n c j e z a m i a s t u |y c i a j e d n e j . W y -
k o r z y s t a n i e t y l k o j e d n e j e n c j i s p o w o d o w a Ba b y j e d n a k p r o b l e m y w p ó zn i e j s z y m c z a s i e , p o n i e w a | w y -
s t p i Ba b y k o n i e c z n o [ k o p i o w a n i a i n f o r m a c j i d o t y c z c y c h k s i |k i r a z e m z i n f o r m a c j a m i d o t y c z c y m i
j e j p o j e d y n c z y c h e g z e m p l a r z y , c o z p e w n o [c i b y Bo b y n i e w Ba [c i w y m s p o s o b e m w y k o r z y s t a n i a z a s o -
b ó w k o m p u t e r a i w y s i Bk u l u d z k i e g o . P e Bn a d y s k u s j a n a t e m a t n o r m a l i z a c j i ( n o r m a l i z a t i o n ) b a z d a n y c h
( p r o c e s u o r g a n i z o w a n i a d a n y c h w p o s t a c i t a b e l z g o d n i e z i c h w e w n ¹t r z n s t r u k t u r ) w y k r a c z a p o z a
z a k r e s t r e [c i n i n i e j s z e j k s i |k i . W a r t o j e d n a k p o d k r e [l i , |e g Bó w n a i d e a p o l e g a n a p r z e c h o w y w a n i u
w a |n y c h i n f o r m a c j i w j e d n y m i t y l k o w j e d n y m m i e j s c u . K a |d y k o l e j n y e g z e m p l a r z d a n e j k s i |k i w y -
m a g a u t w o r z e n i a j e d y n i e d o d a t k o w e g o r e k o r d u z a w i e r a j c e g o i d e n t y f i k a t o r , k t ó r y w p o w y |s z y m p r z y -
p a d k u j e s t n u m e r e m i d e n t y f i k a c y j n y m p o c h o d z c y m z s a m o p r z y l e p n e j n a k l e j k i z k o d e m k r e s k o w y m .
W t y m m i e j s c u n a l e |y w y j a [n i z n a c z e n i e l i n i i p r z e d s t a w i a j c y c h r e l a c j ¹, p o k a z a n n a r y s u n k u 3 . 1 .
Z t r e [c i t e g o r y s u n k u w y n i k a j n a s t ¹p u j c e f a k t y d o t y c z c e r e a l n e j s y t u a c j i :
" K a |d y e g z e m p l a r z d a n e j k s i |k i j e s t e g z e m p l a r z e m t y k o j e d n e j k s i |k i .
" K a |d a k s i |k a m o |e p o s i a d a j e d e n l u b w i ¹k s z l i c z b ¹ s w o i c h e g z e m p l a r z y .
R e l a c j a t a k a j e s t z n a n a j a k o r e l a c j a j e d e n - d o - w i e l u ( o n e - t o - m a n y r e l a t i o n s h i p ) : j e d n a p o z y c j a k s i |-
k o w a i w i e l e e g z e m p l a r z y d a n e j k s i |k i .
F a k t y p o w y |s z e w y d a j s i ¹ b y t r u i z m e m . J e d n a k p r z e d p r z y s t p i e n i e m d o w Ba [c i w e g o p r o j e k t o w a -
n i a b a z y d a n y c h n a l e |y d o k o n a a n a l i z y r o z w i z y w a n e g o p r o b l e m u n a t a k i m w Ba [n i e , p o d s t a w o w y m
p o z i o m i e . R o z Bo |e n i e i n f o r m a c j i d o t y c z c y c h p r o j e k t o w a n e j a p l i k a c j i n a s z e r e g p o z o r n i e b a n a l n y c h
f a k t ó w i u s t a l e n i e w s z y s t k i c h p o d s t a w o w y c h z w i z k ó w p o m i ¹d z y j e j e l e m e n t a m i z p e w n o [c i u Ba t w i
p r a c ¹ p o d c z a s t w o r z e n i a k o d u p r o g r a m u .
F a k t y c z n a s t r u k t u r a b a z y d a n y c h o d z w i e r c i e d l a m o d e l z w i z k ó w e n c j i k a |d a e n c j a o d p o w i a d a t a -
b e l i w b a z i e d a n y c h . P o n i |e j p r z e d s t a w i o n o k o d w j ¹z y k u S Q L , s Bu |c y d o u t w o r z e n i a t a k i e j t a b e l i :
C R E A T E T A B L E b o o k s (
i s b n V A R C H A R 2 ( 1 3 ) N O T N U L L P R I M A R Y K E Y ,
t i t l e V A R C H A R 2 ( 2 0 0 ) ,
s u m m a r y V A R C H A R 2 ( 2 0 0 0 ) ,
a u t h o r V A R C H A R 2 ( 2 0 0 ) ,
d a t e _ p u b l i s h e d D A T E ,
p a g e _ c o u n t N U M B E R
) ;
C R E A T E T A B L E b o o k _ c o p i e s (
b a r c o d e _ i d V A R C H A R 2 ( 1 0 0 ) N O T N U L L P R I M A R Y K E Y ,
i s b n V A R C H A R 2 ( 1 3 ) N O T N U L L ,
C O N S T R A I N T b o o k _ c o p i e s _ i s b n _ f k F O R E I G N K E Y ( i s b n ) R E F E R E N C E S b o o k s ( i s b n )
) ;
Z p o w o d ó w z r o z u m i a By c h d l a s p e c j a l i s t ó w o d m o d e l o w a n i a d a n y c h , e n c j o m n a d a j e s i ¹ n a z w y w f o r -
m i e r z e c z o w n i k ó w w l i c z b i e p o j e d y n c z e j ( b o o k , b o o k _ c o p y ) , n a t o m i a s t t a b e l o m w l i c z b i e
m n o g i e j ( b o o k s , b o o k _ c o p i e s ) . P o n a d t o w a r t o w y k o n a g r a f i c z n r e p r e z e n t a c j ¹ t a b e l i n a
r y s u n k u 3 . 2 p r z e d s t a w i o n o m o |l i w p o s t a z d e f i n i o w a n y c h t a b e l z a p e Bn i o n y c h p e w n y m i d a n y m i .
Z a p o z n a w s z y s i ¹ z d a n y m i z a w a r t y m i w t a b e l a c h , C z y t e l n i k z p e w n o [c i z w r ó c i B u w a g ¹ n a p e w n e
p r o b l e m y . P r z y k Ba d o w o , d a n e w k o l u m n i e a u t h o r s n i e p r a w i d Bo w e i n i e j e s t m o |l i w e p o p r a w n e
p r z e c h o w a n i e i n f o r m a c j i o k i l k u a u t o r a c h j e d n e j k s i |k i . W d a l s z e j c z ¹[c i n i n i e j s z e j k s i |k i z o s t a -
n i e o p i s a n y s p o s ó b p o p r a w i e n i a t y c h w a d .
P i e r w s z y m , p r z y k Ba d o w y m z a d a n i e m b ¹d z i e u t w o r z e n i e p r o g r a m u w j ¹z y k u P L / S Q L , k t ó r y p o s Bu -
|y d o d o d a w a n i a n o w y c h k s i |e k d o b a z y d a n y c h . O c z y w i [c i e , z a m i a s t t a k i e g o p r o g r a m u m o |n a
p o p r o s t u w y k o n a i n s t r u k c j ¹ I N S E R T ( l u b d w i e t a k i e i n s t r u k c j e ) j ¹z y k a S Q L :
R y s u n e k 3 . 2 . P r z y k Ba d d a n y c h w p o s t a c i r e l a c y j n e j , r o z b i t y c h n a w i e r s z e i k o l u m n y
I N S E R T I N T O b o o k s ( i s b n , t i t l e , a u t h o r )
V A L U E S ( ' 0 - 5 9 6 - 0 0 1 8 0 - 0 ' , ' O r a c l e P L / S Q L . W p r o w a d z e n i e ' ,
' B i l l P r i b y l , S t e v e n F e u e r s t e i n ' ) ;
W z w i z k u z p o w y |s z y m C z y t e l n i k z p e w n o [c i z a s t a n a w i a s i ¹ n a d s e n s e m t w o r z e n i a p r o g r a m u
w j ¹z y k u P L / S Q L .
N a l e |y z a Bo |y , |e i s t n i e j e k o n i e c z n o [ z a p e w n i e n i a s t o s o w a n i a d w ó c h s p o s o b ó w d o d a w a n i a k s i -
|e k d o k a t a l o g u : p o p i e r w s z e w s p o s ó b i n t e r a k t y w n y , p o p r z e z r ¹c z n e w p i s a n i e d a n y c h , p o d r u g i e
w s p o s ó b a u t o m a t y c z n y , p o b i e r a j c i n f o r m a c j e o k s i |c e z i n n e j b a z y d a n y c h . N a s u w a s i ¹ z a t e m p y -
t a n i e , c z y w t a k i e j s y t u a c j i n a l e |y s k o p i o w a i n s t r u k c j e I N S E R T d o d w ó c h p r o g r a m ó w . J e d n a k |e
p ó zn i e j m o |e p o j a w i s i ¹ p o t r z e b a n a p i s a n i a t r z e c i e g o p r o g r a m u , k t ó r y d o d a w a Bb y i n f o r m a c j e o k s i |-
k a c h , p r z y k Ba d o w o , o d c z y t u j c j e z p By t y C D - R O M . A z a t e m n a l e |a Bo b y u w z g l ¹d n i k o l e j n e k o -
p i o w a n i e i n s t r u k c j i I N S E R T . Z a k Ba d a j c j e d n a k , |e z a i s t n i e j e p o t r z e b a z m i a n y s t r u k t u r y t a b e l ,
t r z e b a b y w ó w c z a s w s z y s t k i e d o t d u t w o r z o n e p r o g r a m y o d d z i e l n i e u a k t u a l n i .
I s t n i e j e k i l k a p o w o d ó w , d l a k t ó r y c h i n s t r u k c j e I N S E R T w a r t o u m i e [c i w p r o g r a m i e P L / S Q L . P o n i -
|e j w y m i e n i o n o n a j w a |n i e j s z e z n i c h :
" U m o |l i w i a t o o g r a n i c z e n i e , a n a w e t w y e l i m i n o w a n i e m ¹c z c e j p r a c y z w i z a n e j z a k t u a l i z a c j
o p r o g r a m o w a n i a p o z m i a n i e s t r u k t u r y b a z y d a n y c h , p o d c z a s w y k o n y w a n i a k t ó r e j i s t n i e j e
m o |l i w o [ p o p e Bn i a n i a b B¹d ó w .
" P o z w a l a t o n a z w i ¹k s z e n i e w y d a j n o [c i d z i a Ba n i a s e r w e r a b a z y d a n y c h .
" P o z w a l a t o u m i e [c i r o z w i z a n i e p r o b l e m u p r o g r a m i s t y c z n e g o w t y l k o j e d n y m m i e j s c u .
T w o r z e n i e p o p r a w n y c h i n s t r u k c j i w j ¹z y k u S Q L m o |e w y m a g a i n t e r p r e t o w a n i a o r a z z a p i s y w a -
n i a w f o r m i e k o d u w i e l u s k o m p l i k o w a n y c h r e g u B z a r z d z a n i a . E w e n t u a l n a k o n i e c z n o [ d o k o n a n i a
z m i a n w e w s z y s t k i c h n a p i s a n y c h p r o g r a m a c h o d d z i e l n i e o z n a c z a b e z z a s a d n e m a r n o t r a w s t w o c z a -
s u i w y s i Bk u . O g ó l n a z a s a d a m ó w i , |e :
I n s t r u k c j e S Q L n a l e |y u m i e s z c z a w j e d n y m , m o |l i w y m d o w i e l o k r o t n e g o w y k o r z y s t a n i a ,
p r o g r a m i e n a p i s a n y m w j z y k u P L / S Q L , a n i e k o p i o w a j e w w i e l u a p l i k a c j a c h .
N a w e t j e [l i C z y t e l n i k j e s t j e d y n y m p r o g r a m i s t w s w o i m m i e j s c u p r a c y , p o w i n i e n t r z y m a s i ¹ t e j
z a s a d y . N i e o g r a n i c z a s i ¹ o n a z r e s z t t y l k o d o w y k o r z y s t a n i a j ¹z y k a S Q L w s z e l k i e z a d a n i a
p r o g r a m i s t y c z n e p o w i n n o s i ¹ z a p i s y w a t y l k o r a z , a p o t e m w r a z i e k o n i e c z n o [c i j e d y n i e w y k o n y w a
o d p o w i e d n i p r o g r a m . P r z e z d e f i n i o w a n i e c z y n n o [c i w y k o n y w a n y c h p r z e z k a |d j e d n o s t k ¹ p r o g r a -
m u , k t ó r m o |n a w i e l o k r o t n i e w y w o By w a , m o |n a u t w o r z y w Ba s n y i n t e r f e j s t w o r z e n i a o p r o g r a m o -
w a n i a ( a p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e , A P I ) .
T a k p r o s t y , j a k t o m o |l i w e , a l e n i e p r o s t s z y
P r a w d z i w y b i b l i o t e k a r z u z n a Bb y n i n i e j s z y m o d e l z a b a n a l n i e p r o s t y , n a w e t n i e b i o r c p o d
u w a g n i e u w z g l d n i o n y c h w n i m k w e s t i i z w i z a n y c h z c z y t e l n i k a m i , o p e r a c j a m i w y p o |y c z e n i a /
o d d a w a n i a i k u p o w a n i a k s i |e k . W r z e c z y w i s t o [c i f u n k c j o n o w a n i e b i b l i o t e k i j e s t z n a c z n i e b a r -
d z i e j s k o m p l i k o w a n e :
" P o z a p r z e c h o w y w a n i e m k s i |e k b i b l i o t e k i m a g a z y n u j t a k |e g a z e t y i c z a s o p i s m a , n a g r a n i a
m u z y c z n e i k a s e t y w i d e o .
" W i e l e d z i e B, n a p r z y k Ba d s t a r s z e k s i |k i , n i e p o s i a d a n u m e r u I S B N ( I n t e r n a t i o n a l S t a n d a r d
B o o k N u m b e r ) , c o o g r a n i c z a j e g o z a s t o s o w a n i e j a k o j e d n o z n a c z n e g o i d e n t y f i k a t o r a .
" D z i e Ba m o g m i e r ó |n e t y t u By i w i e l u a u t o r ó w .
" N a l e |y p r z e c h o w y w a o w i e l e w i c e j i n f o r m a c j i : o d z i a Ba c h , w y d a w c a c h , i l u s t r a t o r a c h ,
w y d a n i a c h , d z i e Ba c h w i e l o t o m o w y c h i p o c h o d n y c h .
" B i b l i o t e k i z a z w y c z a j u d o s t p n i a j s o b i e n a w z a j e m s w o j e k a t a l o g i d r o g e l e k t r o n i c z n e j
w y m i a n y .
P o d o b n y c h p r z y k Ba d ó w j e s t w i c e j , d l a t e g o n a l e |y w y j a [n i p o w o d y u w z g l d n i e n i a w n i n i e j s z e j
k s i |c e t a k p r o s t e g o p r z y k Ba d u .
W y k o n a n i e b a z y d a n y c h , k t ó r e j s c h e m a t p o k a z a n o n a r y s u n k u 3 . 1 , w z a s a d z i e j e s t z b y t s k o m -
p l i k o w a n y m z a d a n i e m d l a z u p e Bn i e p o c z t k u j c y c h p r o g r a m i s t ó w . R e l a c j a j e d e n d o w i e l u s t a n o w i
p o d s t a w w i k s z o [c i a s p e k t ó w p r o j e k t o w a n i a b a z d a n y c h ( t y l e |e w r e a l n y c h s y t u a c j a c h c h o d z i
o w i e l e t a k i c h r e l a c j i ) o r a z p r o g r a m o w a n i a w j z y k u P L / S Q L . W d a l s z e j c z [c i n i n i e j s z e j k s i |k i
z o s t a n i e o p i s a n y s p o s ó b r o z s z e r z a n i a f u n k c j o n a l n o [c i p r o j e k t o w a n e j b a z y d a n y c h , a t a k |e s p o -
s o b y w y k o r z y s t a n i a P L / S Q L w b a r d z i e j r e a l n y c h z a d a n i a c h .
I n n y m p o w o d e m w p r o w a d z e n i a p e w n y c h u p r o s z c z e D j e s t f a k t , |e n a u k a n o w e g o m a t e r i a Bu
p r z y c h o d z i n a j Ba t w i e j , j e [l i m o |n a s t u d i o w a j e d n o z a g a d n i e n i e w j e d n y m c z a s i e . W p r z e c i w n y m
r a z i e n a u k a p r z y c h o d z i d u |o t r u d n i e j .
W n i n i e j s z y m r o z d z i a l e p r z e d s t a w i o n o i n f o r m a c j e o s p o s o b a c h l o k a l i z o w a n i a k o d u S Q L ( s t o s o w a n i e
k o d u w j e d n y m m i e j s c u ) z a p o m o c o b w o l u t t a b e l ( t a b l e w r a p p e r s ) , k t ó r e s p r o g r a m a m i o d p o -
w i e d z i a l n y m i z a w s z e l k i e o p e r a c j e z m i a n y z a w a r t o [c i k a |d e j z t a b e l b a z y d a n y c h .
Z a p e w n e w i ¹k s z o [ p r o g r a m i s t ó w , n i e z a l e |n i e o d s t o p n i a z a a w a n s o w a n i a , o d c z u w a n i e p e w n o [
w s y t u a c j i , g d y m a n a p i s a p r o g r a m o d p o d s t a w . Z r e g u By w t a k i e j s y t u a c j i m o |n a r o z p o c z p r a c ¹
o d p r z e r a b i a n i a j u | i s t n i e j c y c h l u b p r z y k Ba d o w y c h p r o g r a m ó w . W t y m p r z y p a d k u z o s t a n i e p r z e d -
s t a w i o n y s p o s ó b t w o r z e n i a p r o g r a m u o d s a m e g o p o c z t k u , a l e p r a w d o p o d o b n i e C z y t e l n i k r z a d k o
b ¹d z i e d o t e g o z m u s z o n y .
G o d n y m p o l e c e n i a z w y c z a j e m j e s t r o z p o c z ¹c i e t w o r z e n i a p r o g r a m u o d n a r y s o w a n i a s c h e m a t u . R y -
s u n e k 3 . 3 p r z e d s t a w i a m o |l i w r e p r e z e n t a c j ¹ g r a f i c z n o m a w i a n e g o p r o g r a m u o r a z j e g o d a n y c h w e j -
[c i o w y c h i w y j [c i o w y c h .
R y s u n e k 3 . 3 . S c h e m a t p r o g r a m u s Bu |c e g o d o d o d a w a n i a k s i |e k d o b a z y d a n y c h
W p r z e c i w i e Ds t w i e d o w c z e [n i e j p r e z e n t o w a n e g o d i a g r a m u z w i z k ó w i e n c j i , p o w y |s z y d i a g r a m
n i e z o s t a B s k o n s t r u o w a n y z g o d n i e z j a k i m i [ z a s a d a m i p r o j e k t o w a n i a . N a j w a |n i e j s z r z e c z j e s t
p r z e d s t a w i e n i e n a j b a r d z i e j z n a c z c y c h e l e m e n t ó w . Z p o w y |s z e g o r y s u n k u w y n i k a , |e t r z e b a s k o n -
s t r u o w a p r o g r a m z d o l n y d o p o b i e r a n i a p e w n y c h i n f o r m a c j i , a n a s t ¹p n i e d o u m i e s z c z a n i a i c h w t a -
b e l a c h b a z y d a n y c h . C h o z a p e w n e n i e j e s t t o o c z y w i s t e , u w z g l ¹d n i o n o m o |l i w o [ p o s z e r z e n i a f u n k -
c j o n a l n o [c i a p l i k a c j i w p r z y s z Bo [c i .
O g ó l n i e r z e c z b i o r c , j e d n o s t k a p r o g r a m u p o w i n n a s Bu |y d o w y k o n a n i a j e d n e g o , k o n k r e t n e g o
z a d a n i a i n a l e |y z a p e w n i p r a w i d Bo w e d z i a Ba n i e t e j j e d n o s t k i w s w o i m z a k r e s i e . W s k a z a n e j e s t ,
a b y m i a Ba o n n i e w i e l k i r o z m i a r u Ba t w i t o j e j z a p i s i p ó zn i e j s z e m o d y f i k a c j e .
T r z e b a j e s z c z e z n a l e z o d p o w i e d z n a p y t a n i e , j a k i e j k o n s t r u k c j i j ¹z y k a P L / S Q L n a l e |a Bo b y u |y
w c e l u z d e f i n i o w a n i a o p e r a c j i d o d a w a n i a k s i |k i a d d _ b o o k . Z u w a g i n a f a k t , |e p r o g r a m n i e b ¹-
d z i e z w r a c a B |a d n e j w a r t o [c i , n a j b a r d z i e j r o z s d n y m r o z w i z a n i e m j e s t z a s t o s o w a n i e p r o c e d u r y .
W t y m p o d r o z d z i a l e z o s t a n i e p r z e d s t a w i o n y s p o s ó b n a p i s a n i a p r o c e d u r y , k t ó r a m a w s t a w i a i n f o r -
m a c j e n a t e m a t d a n e j k s i |k i d o b a z y d a n y c h . P r o c e d u r a t a k a m o |e b y n a z w a n a o b w o l u t . M o |n a
t e | p o w i e d z i e , u |y w a j c t e r m i n o l o g i i p o c h o d z c e j z j ¹z y k a g r e c k i e g o , |e b ¹d w y k o r z y s t y w a n e
a b s t r a k c j e ( a b s t r a c t i o n ) , p r o c e s y e n k a p s u l a c j i ( e n c a p s u l a t i o n ) o r a z u k r y w a n i a i n f o r m a c j i ( i n f o r m a -
t i o n h i d i n g ) d e f i n i c j e w y m i e n i o n y c h p o j ¹ z n a j d u j s i ¹ w S Bo w n i c z k u . N a r y s u n k u 3 . 4 p r z e d s t a -
w i o n o w i ¹c e j s z c z e g ó Bó w d o t y c z c y c h t a k i e g o r o z w i z a n i a .
R y s u n e k 3 . 4 . J e d y n i e z p o z i o m u p r o g r a m u P L / S Q L b d z i e m o |l i w e d o d a w a n i e i n f o r m a c j i o k s i |c e d o b a z y d a n y c h
U |y t k o w n i c y g o t o w e g o p r o g r a m u n i e m u s z w i e d z i e n a j e g o t e m a t z b y t w i e l e , j e d n a k t w ó r c a d a n e j
a p l i k a c j i m u s i z p e w n o [c i p o s i a d a g r u n t o w n w i e d z ¹ d o t y c z c s t r u k t u r y b a z y d a n y c h . D l a t e g o
t e | p i e r w s z r z e c z , j a k n a l e |y w y k o n a , j e s t o k r e [l e n i e t a b e l i i c h k o l u m n z w i z a n y c h z p r o c e s e m
w y k o n a n i a r e g u By z a r z d z a n i a ( w t y m p r z y p a d k u d o d a n i a k s i |k i ) . T r z e b a o d p o w i e d z i e s o b i e n a
p y t a n i e , j a k i e i n f o r m a c j e s p o t r z e b n e d o m a n i p u l o w a n i a z a w a r t o [c i t y c h t a b e l .
W c e l u o k r e [l e n i a i s t o t n y c h d l a w y k o n a n i a p l a n o w a n e j o p e r a c j i t a b e l i k o l u m n t r z e b a p r z y j r z e s i ¹
p r o j e k t o w i b a z y d a n y c h ( p r z e d s t a w i o n e m u w e w c z e [n i e j s z e j c z ¹[c i n i n i e j s z e g o r o z d z i a Bu ) . L i s t ¹ t y c h
k o l u m n m o |n a z Ba t w o [c i u t w o r z y z a p o m o c i n s t r u k c j i D E S C R I B E , d o s t ¹p n e j w S Q L * P l u s ( w f o r -
m i e s k r ó c o n e j D E S C ) :
S Q L > D E S C k s i a z k i
N a m e N u l l ? T y p e
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I S B N N O T N U L L V A R C H A R 2 ( 1 3 )
T I T L E V A R C H A R 2 ( 2 0 0 )
S U M M A R Y V A R C H A R 2 ( 2 0 0 0 )
A U T H O R V A R C H A R 2 ( 2 0 0 )
D A T E _ P U B L I S H E D D A T E
P A G E _ C O U N T N U M B E R
S Q L > D E S C e g z e m p l a r z e _ k s i a z k i
N a m e N u l l ? T y p e
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
B A R C O D E _ I D N O T N U L L V A R C H A R 2 ( 1 0 0 )
I S B N V A R C H A R 2 ( 1 3 )
P o p r z e a n a l i z o w a n i u l i s t y k o l u m n m o |n a p r z y j , |e w i ¹k s z o [ z a w a r t y c h w n i c h i n f o r m a c j i p o w i n -
n a b y z n a n a o s o b i e w y k o n u j c e j k a t a l o g o w a n i e i d l a t e g o n i e t r z e b a n i c z e g o s y n t e t y z o w a , s p r a w -
d z a l u b o b l i c z a . P r o c e d u r a b ¹d z i e w i ¹c b a r d z o p r o s t a .
P o d s t a w o w y m p r o b l e m e m d o r o z w i z a n i a j e s t p o d j ¹c i e d e c y z j i , c z y u |y t k o w n i k b ¹d z i e w s t a w i a B
d a n e d o o b y d w ó c h t a b e l j e d n o c z e [n i e , c z y t e | o d d z i e l n i e . N a t y m e t a p i e p r a c y o d p o w i e d z n a t o
p y t a n i e j e s t j e s z c z e n i e z n a n a . N a j p r a w d o p o d o b n i e j w b i b l i o t e k a c h o d b y w a s i ¹ t o w t e n s p o s ó b , |e
i n f o r m a c j e o k s i |k a c h s d o d a w a n e d o b a z y d a n y c h w m o m e n c i e p o j a w i e n i a s i ¹ p i e r w s z e g o e g -
z e m p l a r z a . D l a t e g o t e | p o d c z a s d o d a w a n i a d a n e j k s i |k i p o r a z p i e r w s z y w s z y s t k i e i n f o r m a c j e
w y m a g a n e d l a w y p e Bn i e n i a o b y d w ó c h t a b e l s o d r a z u z n a n e : o d n u m e r u I S B N p o i d e n t y f i k a t o r
k o d u k r e s k o w e g o . J e d n a k i s t n i e j e t a k |e k o n i e c z n o [ k a t a l o g o w a n i a n o w y c h e g z e m p l a r z y k s i |k i
j u | z n a j d u j c e j s i ¹ w z b i o r a c h b i b l i o t e k i t ¹ p o t r z e b ¹ r ó w n i e | n a l e |y u w z g l ¹d n i p o d c z a s p l a -
n o w a n i a p r o g r a m u .
R o z p o c z y n a j c o p r a c o w y w a n i e n o w e g o p r o j e k t u w i e l u p r o g r a m i s t ó w z a p i s u j e t z w . p s e u d o k o d
w p o s t a c i z w y k By c h z d a D, k t ó r e o p i s u j z g r u b s z a d z i a Ba n i e p r o g r a m u . W t y m p r z y p a d k u m o |n a
b y n a p i s a :
S p r a w d z, c z y d a n e w e j [c i o w e s p r a w i d Bo w e .
W s t a w n o w y r e k o r d d o t a b e l i " b o o k s " .
W s t a w n o w y r e k o r d d o t a b e l i " b o o k _ c o p i e s " .
K o l e j n y m e t a p e m b ¹d z i e p r z e d s t a w i e n i e s k Ba d n i k o n s t r u k c j i j ¹z y k o w y c h p o t r z e b n y c h d o u t w o r z e -
n i a p r o c e d u r y . N a s t ¹p n i e z a p i s a n y p s e u d o k o d z o s t a n i e z a m i e n i o n y n a k o n k r e t n e i n s t r u k c j e .
P o n i |e j z n a j d u j e s i ¹ o p i s r ó |n y c h c z ¹[c i s k Ba d o w y c h p r o c e d u r y . Z a z w y c z a j p r o c e d u r y t w o r z y s i ¹ z a
p o m o c i n s t r u k c j i o n a s t ¹p u j c e j s k Ba d n i :
C R E A T E [ O R R E P L A C E ] P R O C E D U R E n a z w a _ p r o c e d u r y
( p a r a m e t r 1 T R Y B T Y P _ D A N Y C H [ D E F A U L T w y r a |e n i e ] ,
p a r a m e t r 2 T R Y B T Y P _ D A N Y C H [ D E F A U L T w y r a |e n i e ] ,
. . . )
A S
[ z m i e n n a 1 T Y P _ D A N Y C H ;
z m i e n n a 2 T Y P _ D A N Y C H ;
. . . ]
B E G I N
i n s t r u k c j e _ w y k o n a w c z e
[ E X C E P T I O N
W H E N n a z w a _ w y j t k u
T H E N
i n s t r u k c j e _ w y k o n a w c z e ]
E N D ;
/
P o w y |s z y w z o r z e c z a w i e r a k o m b i n a c j ¹ s Bó w k l u c z o w y c h j ¹z y k a P L / S Q L ( p i s a n e d u |y m i l i t e r a m i
i n i e k u r s y w ) o r a z w y r a |e D d o z a s t p i e n i a ( p i s a n e k u r s y w ) w k o d z i e t w o r z o n e g o p r o g r a m u .
C R E A T E [ O R R E P L A C E ]
J e s t t o s z c z e g ó l n a i n s t r u k c j a S Q L , s Bu |c a d o u t w o r z e n i a p r o c e d u r y . F r a z a O R R E P L A C E ( l u b
z a s t p ) j e s t o p c j o n a l n a i p o z w a l a n a u n i k n i ¹c i e k o n i e c z n o [c i u s u w a n i a j u | i s t n i e j c e j p r o c e d u r y
w p r z y p a d k u t w o r z e n i a j e j n o w e j w e r s j i . Z a s t o s o w a n i e w y r a |e n i a O R R E P L A C E z a c h o w u j e
t a k |e w s z e l k i e s y n o n i m y ( s y n o n y m s ) o r a z g r a n t y ( g r a n t s ) , j a k i e z o s t a By u p r z e d n i o u t w o r z o n e ,
a s z a l e |n e o d d z i a Ba n i a p r o c e d u r y . J e s t t o d u |a z a l e t a .
P R O C E D U R E n a z w a _ p r o c e d u r y
W s e k c j i n a g Bó w k a p o d a j e r o d z a j t w o r z o n e j j e d n o s t k i p r o g r a m o w e j ( w t y m w y p a d k u p r o c e d u r a )
o r a z n a d a j e s i ¹ j e j n a z w ¹.
p a r a m e t r 1 T R Y B T Y P _ D A N Y C H [ D E F A U L T w y r a |e n i e ]
A b y u m o |l i w i u |y t k o w n i k o w i p o d a w a n i e p a r a m e t r ó w w y w o Ba n i a p r o c e d u r y , n a l e |y u t w o r z y
l i s t ¹ d e f i n i c j i p a r a m e t r ó w o d d z i e l o n y c h p r z e c i n k a m i , a c a B l i s t ¹ o b j w n a w i a s y . T R Y B m o |e
m i e w a r t o [: I N , O U T l u b I N O U T . P o n i |e j z n a j d u j e s i ¹ o p i s w s z y s t k i c h o p c j i .
I N
S Bo w o k l u c z o w e o z n a c z a j c e t r y b t y l k o d o o d c z y t u . W y w o Bu j c y p r o c e d u r ¹ p o d a j e w a r t o [
p a r a m e t r u , a P L / S Q L n i e p o z w a l a n a j e j z m i a n ¹ w e w n t r z p r o g r a m u .
O U T
S Bo w o k l u c z o w e o z n a c z a j c e t r y b t y l k o d o z a p i s u . O z n a c z a t o , |e p r o c e d u r a n a d a j e
p a r a m e t r o w i p e w n w a r t o [, k t ó r a j e s t o d c z y t y w a n a p r z e z p r o g r a m w y w o Bu j c y . P o d a n i e
j a k i e j k o l w i e k w a r t o [c i t a k i e g o p a r a m e t r u p o d c z a s w y w o Ba n i a p r o c e d u r y j e s t i g n o r o w a n e .
I N O U T
S Bo w o k l u c z o w e o z n a c z a j c e t r y b d o o d c z y t u l u b z a p i s u . S Bo w o t o j e s t u |y w a n e w s y t u a c j i ,
g d y w a r t o [ z m i e n n e j , p r z e k a z y w a n e j d o p r o c e d u r y j a k o p a r a m e t r , m a b y z a r ó w n o
o d c z y t y w a n a , j a k i z m i e n i a n a , a n a s t ¹p n i e z w r a c a n a d o p r o g r a m u w y w o Bu j c e g o .
T Y P _ D A N Y C H
Z n a c z e n i e t e g o p a r a m e t r u p r z e d s t a w i o n o w r o z d z i a l e 2 . d o p u s z c z a l n y m i w a r t o [c i a m i s
n a p r z y k Ba d : N U M B E R , I N T E G E R , V A R C H A R 2 , D A T E . J e d y n a r ó |n i c a p o l e g a n a t y m ,
|e w t y m m i e j s c u n a l e |y p o d a j e d y n i e r o d z a j t y p u , b e z j e g o d o k Ba d n e j s p e c y f i k a c j i . I n n y m i
s Bo w y , n a l e |y u |y V A R C H A R 2 z a m i a s t V A R C H A R 2 ( 3 0 ) i N U M B E R z a m i a s t N U M B E R ( 1 0 , 2 ) .
D E F A U L T w y r a |e n i e
P o z w a l a n a p r z y p i s a n i e p a r a m e t r o w i w a r t o [c i d o m y [l n e j w p r z y p a d k u , g d y w y w o Ba n i e p r o c e d u r y
j e j n i e o k r e [l a . M o |n a t a k |e u |y s y m b o l u : = ( d w u k r o p e k i z n a k r ó w n o [c i ) z a m i a s t s Bo w a
k l u c z o w e g o D E F A U L T .
A S
S Bo w o k l u c z o w e A S o d d z i e l a n a g Bó w e k o d r e s z t y j e d n o s t k i p r o g r a m o w e j . O p c j o n a l n i e m o |n a
u |y s Bo w a k l u c z o w e g o I S , k t ó r e j e s t r ó w n o w a |n e A S .
B E G I N . . E N D
S Bo w a B E G I N i E N D o d d z i e l a j z w y k Be , c z y l i w y k o n a w c z e i n s t r u k c j e o d r e s z t y p r o g r a m u .
E X C E P T I O N
O z n a c z a p o c z t e k k o d u o b s Bu g i w y j t k u t e j c z ¹[c i p r o g r a m u , k t ó r a j e s t w y k o n y w a n a t y l k o
w p r z y p a d k u p r z e c h w y c e n i a w y j t k u w s e k c j i w y k o n a w c z e j . W s z y s t k i e e l e m e n t y u m i e s z c z o n e
p o s Bo w i e k l u c z o w y m E X C E P T I O N i p r z e d i n s t r u k c j E N D s c z ¹[c i o b s Bu g i w y j t k u .
W H E N n a z w a _ w y j t k u T H E N i n s t r u k c j e _ w y k o n a w c z e
M o |l i w y m d o w y s t p i e n i a s y t u a c j o m b B¹d n e g o d z i a Ba n i a p r o g r a m u z a z w y c z a j s n a d a w a n e
n a z w y a l b o p r z e z s y s t e m O r a c l e , a l b o p r z e z p r o g r a m i s t ¹. D z i ¹k i t e m u m o |n a w k o d z i e
p r o g r a m u z a p i s a i n s t r u k c j e w y c h w y t u j c e t e s y t u a c j e i u m o |l i w i o d p o w i e d n i n a n i e
r e a k c j ¹, k t ó r j e s t w y k o n a n i e p e w n e g o f r a g m e n t u k o d u . J e [l i t a k a n a z w a j e s t n i e z n a n a l u b
w c e l u w y c h w y t y w a n i a b B¹d ó w , k t ó r e n i e z o s t a By n a z w a n e , m o |n a p o s Bu |y s i ¹ s Bo w e m
O T H E R S , k t ó r e d o t y c z y w s z y s t k i c h s y t u a c j i w y j t k o w y c h . W z a p i s i e w y g l d a Bo b y
t o n a s t ¹p u j c o : W H E N O T H E R S T H E N . . . .
P e w n e e l e m e n t y k o d u p r o c e d u r y s o p c j o n a l n e . N a j p r o s t s z a , m o |l i w a d o u t w o r z e n i a p r o c e d u r a p o -
s i a d a n a s t ¹p u j c f o r m ¹:
C R E A T E P R O C E D U R E n i e _ r o b _ n i c A S
B E G I N
N U L L ;
E N D ;
Z p o w y |s z e g o w y n i k a , |e p a r a m e t r y , z m i e n n e i k o d o b s Bu g i w y j t k ó w s o p c j o n a l n e . S Bo w o k l u c z o w e
N U L L z o s t a Bo t u t a j z a s t o s o w a n e j a k o i n s t r u k c j a w y k o n a w c z a . O z n a c z a o n a t y l e , c o n i e r ó b n i c .
K o r z y s t a j c z p o t r z e b n y c h e l e m e n t ó w p o d a n e g o w c z e [n i e j w z o r c a m o |n a z a p i s a p s e u d o k o d w f o r -
m i e p r a w d z i w e g o k o d u :
C R E A T E O R R E P L A C E P R O C E D U R E a d d _ b o o k ( i s b n _ i n I N V A R C H A R 2 ,
b a r c o d e _ i d _ i n I N V A R C H A R 2 , t i t l e _ i n I N V A R C H A R 2 , a u t h o r _ i n I N V A R C H A R 2 ,
p a g e _ c o u n t _ i n I N N U M B E R , s u m m a r y _ i n I N V A R C H A R 2 D E F A U L T N U L L ,
d a t e _ p u b l i s h e d _ i n I N D A T E D E F A U L T N U L L )
A S
B E G I N
/ * s p r a w d z e n i e p o p r a w n o [c i d a n y c h w e j [c i o w y c h * /
I F i s b n _ i n I S N U L L
T H E N
R A I S E V A L U E _ E R R O R ;
E N D I F ;
/ * w s t a w i e n i e r e k o r d u d o t a b e l i " b o o k s " * /
I N S E R T I N T O b o o k s ( i s b n , t i t l e , s u m m a r y , a u t h o r , d a t e _ p u b l i s h e d ,
p a g e _ c o u n t )
V A L U E S ( i s b n _ i n , t i t l e _ i n , s u m m a r y _ i n , a u t h o r _ i n , d a t e _ p u b l i s h e d _ i n ,
p a g e _ c o u n t _ i n ) ;
/ * j e [l i t o k o n i e c z n e , w s t a w i e n i e r e k o r d u d o t a b e l i " b o o k _ c o p i e s " * /
I F b a r c o d e _ i d _ i n I S N O T N U L L
T H E N
I N S E R T I N T O b o o k _ c o p i e s ( i s b n , b a r c o d e _ i d )
V A L U E S ( i s b n _ i n , b a r c o d e _ i d _ i n ) ;
E N D I F ;
E N D a d d _ b o o k ;
/
P o n i |e j z n a j d u j e s i ¹ o p i s d z i a Ba n i a u t w o r z o n e j p r o c e d u r y .
N a z w a p r o c e d u r y i k o l e j n o [ p a r a m e t r ó w . N a z w p r o c e d u r y j e s t w y r a |e n i e c z a s o w n i k o w e , k t ó r e
o p i s u j e d z i a Ba n i e t e j p r o c e d u r y . P o d a n o t u t a k |e p a r a m e t r y w e j [c i o w e n a k a |d z k o l u m n t a b e l ,
d o k t ó r y c h m a j b y w p r o w a d z a n e d a n e , p r z y p a d a j e d e n p a r a m e t r . W c e l u w y e k s p o n o w a n i a n a j -
w a |n i e j s z y c h p a r a m e t r ó w ( i s b n _ i n c z y b a r c o d e _ i d _ i n ) o r a z w c e l u u m i e s z c z e n i a p a r a m e -
t r ó w o w a r t o [c i a c h d o m y [l n y c h n a k o Dc u , z m i e n i o n o n i e c o i c h k o l e j n o [ w o d n i e s i e n i u d o k o l e j -
n o [c i k o l u m n w t a b e l a c h .
N a z w y p a r a m e t r ó w . W a r t o p r z y j p e w n k o n w e n c j ¹ n a z e w n i c t w a w p r o g r a m o w a n i u i d o n a z w
p a r a m e t r ó w d o d a s i ¹ n a z w ¹ i c h t r y b u ( I N , O U T l u b I N O U T ) . P o n i e w a | w s z y s t k i e p a r a m e t r y
p r o c e d u r y a d d _ b o o k s p a r a m e t r a m i w t r y b i e I N , i c h n a z w y z a w i e r a j k o Dc ó w k ¹ _ i n . T a k a
k o n w e n c j a n a d a w a n i a n a z w n i e j e s t o b o w i z k o w a , a l e j e s t p o m o c n a w u n i k a n i u k o n f l i k t ó w z n a -
z w a m i k o l u m n p o d c z a s u |y w a n i a i n s t r u k c j i S Q L . G d y b y p o z o s t a By o n e i d e n t y c z n e , o t r z y m a n a i n -
s t r u k c j a m i a Ba b y n a s t ¹p u j c p o s t a :
I N S E R T I N T O b o o k _ c o p i e s ( b a r c o d e _ i d , i s b n )
V A L U E S ( b a r c o d e _ i d , i s b n ) ;
W t a k i m p r z y p a d k u o d r ó |n i a n i e n a z w y k o l u m n o d n a z w z m i e n n y c h p o d c z a s o d c z y t y w a n i a k o d u
m o g Bo b y o k a z a s i ¹ p r o b l e m a t y c z n e n a w e t d l a d o [w i a d c z o n e g o p r o g r a m i s t y . J e d n a k |e s a m a i n -
s t r u k c j a z o s t a Ba b y w y k o n a n a p r a w i d Bo w o , g d y | P L / S Q L z i n t e r p r e t o w a Bb y w s z y s t k o n a s t ¹p u j c o :
I N S E R T I N T O b o o k _ c o p i e s ( b a r c o d e _ i d , i s b n ) / * n a z w y k o l u m n * /
V A L U E S ( b a r c o d e _ i d , i s b n ) ; / * z m i e n n e P L / S Q L * /
J e d n a k |e i n s t r u k c j a :
U P D A T E k s i a z k i
S E T s u m m a r y = s u m m a r y / * B Bd ! * /
W H E R E i s b n = i s b n ; / * N i e w o l n o t a k r o b i ! * /
n i e z o s t a n i e w y k o n a n a p r a w i d Bo w o . P L / S Q L z i n t e r p r e t u j e k a |d e w y s t p i e n i e s u m m a r y o r a z i s b n
j a k o n a z w y k o l u m n .
W e r y f i k a c j a d a n y c h w e j [c i o w y c h . Z a p i s p i e r w s z e j l i n i i z a p r e z e n t o w a n e g o w c z e [n i e j p s e u d o k o -
d u m ó w i B: S p r a w d z, c z y d a n e w e j [c i o w e s p r a w i d Bo w e . K o n i e c z n e j e s t j e d n a k p o d j ¹c i e j e s z c z e
k i l k u u s t a l e D. P r z y k Ba d o w o , m o |n a z a Bo |y , |e u |y t k o w n i c y s y s t e m u b ¹d d o m a g a s i ¹ m i n i m a l n y c h
w y m a g a D z e s t r o n y p r o c e d u r y w m o m e n c i e j e j w y w o By w a n i a . M o |e t o o z n a c z a , |e j e d y n y m a b -
s o l u t n i e w y m a g a n y m p a r a m e t r e m t w o r z o n e j p r o c e d u r y j e s t I S B N . S t d t e | s e k c j a w e r y f i k a c j i d a -
n y c h w e j [c i o w y c h z o s t a Ba z a p i s a n a j a k o :
I F i s b n _ i n I S N U L L
T H E N
R A I S E V A L U E _ E R R O R ;
E N D I F ;
B e z d o k Ba d n i e j s z e j z n a j o m o [c i p o w y |s z y c h i d e n t y f i k a t o r ó w n i e j e s t m o |l i w e p r z e p r o w a d z e n i e b a r -
d z i e j w y m y [l n e j w e r y f i k a c j i p o p r a w n o [c i d a n y c h w e j [c i o w y c h . P r z e d s t a w i o n y w y |e j f r a g m e n t k o d u
o z n a c z a , |e b r a k I S B N p o w o d u j e z a t r z y m a n i e w y k o n y w a n i a p r o g r a m u .
W d a l s z e j c z ¹[c i k o d u j e s t t a k |e w y k o n y w a n e s p r a w d z e n i e k o d u k r e s k o w e g o . P r o g r a m z o s t a B s k o n -
s t r u o w a n y w t e n s p o s ó b , a b y u n i k n w y k o n a n i a n i e p o p r a w n e j i n s t r u k c j i I N S E R T , c o s p o w o d o -
w a Bo b y b Bd .
W r o z d z i a l e 2 . w y j a [n i o n o , |e w r a z i e w y s t p i e n i a b B¹d u P L / S Q L z a t r z y m u j e w y k o n y w a n i e p r o g r a -
m u z a p o m o c m e c h a n i z m u z w a n e g o p r z e c h w y t y w a n i e m w y j t k u ( r a i s i n g a n e x c e p t i o n ) . J a k w y -
n i k a z r y s u n k u 3 . 5 , i n s t r u k c j a :
R A I S E V A L U E _ E R R O R
z a t r z y m u j e w y k o n y w a n i e i n s t r u k c j i s e k c j i w y k o n a w c z e j i p r z e k a z u j e s t e r o w a n i e d o k o d u o b s Bu g i
w y j t k u . J e [l i t a k i k o d n i e i s t n i e j e , w y j t e k z w r a c a p e w i e n b Bd d o p r o g r a m u w y w o Bu j c e g o , a t e n
r e a g u j e w o k r e [l o n y p r z e z p r o g r a m i s t ¹ s p o s ó b .
R y s u n e k 3 . 5 . P r o s t y p r z y k Ba d o b s Bu g i w y j t k u
W y j t e k V A L U E _ E X C E P T I O N n a l e |y d o g r u p y w y j t k ó w w e w n ¹t r z n y c h , k t ó r e w p e w n y c h s y t u -
a c j a c h s p r z e c h w y t y w a n e p r z e z s y s t e m O r a c l e . P r o g r a m w y w o Bu j c y p r o c e d u r ¹ a d d _ b o o k p o -
w i n i e n u m o |l i w i a o b s Bu g ¹ w s z e l k i c h m o |l i w y c h d o p r z e w i d z e n i a w y j t k ó w i n a p o d s t a w i e i n f o r -
m a c j i d o t y c z c y c h n a p o t k a n e g o b B¹d u z d e c y d o w a o d a l s z y m f u n k c j o n o w a n i u p r o g r a m u . W t y m
p r z y p a d k u p o |d a n y m d z i a Ba n i e m b y Bo b y p r z e r w a n i e p r o c e s u d o d a w a n i a d o b a z y d a n y c h n i e k o m -
p l e t n y c h i n f o r m a c j i . N a j l e p i e j b y Bo b y , g d y b y p r o g r a m w y w o Bu j c y z w r a c a B u |y t k o w n i k o w i i n f o r -
m a c j ¹ o b B¹d z i e .
B y m o |e C z y t e l n i k z a s t a n a w i a s i ¹ n a c e l o w o [c i p o d e j m o w a n i a t a k i c h d z i a Ba D z a m i a s t , p r z y k Ba -
d o w o , u m o |l i w i e n i a s a m e j p r o c e d u r z e a d d _ b o o k w y [w i e t l a n i a k o m u n i k a t u o n a p o t k a n y m b B¹-
d z i e . C e l o w o [ u |y c i a m e c h a n i z m u w y j t k ó w s t a j e s i ¹ j a s n a p o u [w i a d o m i e n i u s o b i e , |e p r z e k a -
z a n i e o b s Bu g i s y t u a c j i w y j t k o w y c h d o p r o c e d u r y o g r a n i c z y Bo b y w z n a c z n y m s t o p n i u m o |l i w o [c i j e j
p o n o w n e g o w y k o r z y s t a n i a . J e [l i p r o c e d u r a a d d _ b o o k o b s Bu g u j e w y j t e k i w y [w i e t l a k o m u n i k a t
o b B¹d z i e , n i e m o |l i w e j e s t w y k o r z y s t a n i e j e j p r z e z p r o g r a m , d l a k t ó r e g o d z i a Ba n i a t a k i e k o m u n i -
k a t y s n i e w s k a z a n e . P r z y k Ba d o w o , m o |n a z a Bo |y i s t n i e n i e p r o g r a m u , k t ó r y o d c z y t u j e i n f o r m a c j e
o k s i |k a c h z p l i k u i j e d n o r a z o w o w p r o w a d z a d o b a z y d a n y c h i n f o r m a c j e d o t y c z c e t y s i ¹c y k s i |e k .
P r o g r a m t e n m a w y w o By w a p r o c e d u r ¹ a d d _ b o o k d l a k a |d e j k o l e j n e j p o z y c j i i w r a z i e w y s t -
p i e n i a b B¹d u z a p a m i ¹t a i n f o r m a c j ¹ o j e g o p r z y c z y n i e , n i e p r z e r y w a j c j e d n a k s w o j e g o d z i a Ba n i a ,
a | d o z a k o Dc z e n i a w p r o w a d z a n i a d a n y c h d o t y c z c y c h o s t a t n i e j k s i |k i . D o p i e r o w ó w c z a s m o |n a
b y p r z e d s t a w i u |y t k o w n i k o w i p o d s u m o w a n i e i n f o r m a c j i o n a p o t k a n y c h p r o b l e m a c h . W y k o r z y s t a -
n i e p r o c e d u r y a d d _ b o o k w t a k i s p o s ó b j e s t m o |l i w e j e d y n i e p o p r z e z p r o p a g a c j ¹ w y j t k ó w n a z e -
w n t r z d o p r o g r a m u w y w o Bu j c e g o .
U o g ó l n i a j c , j e [l i i s t n i e j e p r a w d o p o d o b i e Ds t w o n a p o t k a n i a p r z e z p r o g r a m b B¹d u , k t ó r e g o
n i e d a s i ¹ n a p r a w i w p r o s t y s p o s ó b , n a l e |y z a p e w n i m o |l i w o [ p r z e c h w y c e n i a w y j t k u .
W d a l s z e j c z ¹[c i n i n i e j s z e j k s i |k i o p i s a n o w y j t k i , k t ó r e n a l e |y b r a p o d u w a g ¹.
J e |e l i w e r y f i k a c j a p o p r a w n o [c i d a n y c h w e j [c i o w y c h p r z e b i e g a p o m y [l n i e , p r o g r a m k o n t y n u u j e s w o j e
d z i a Ba n i e w y k o n u j c i n s t r u k c j e I N S E R T j ¹z y k a S Q L . N i e m a p o t r z e b y z w r a c a n i a j a k i c h k o l w i e k
d a n y c h d o p r o g r a m u w y w o Bu j c e g o . J e d n a k g d y b y z a s z Ba t a k a k o n i e c z n o [, m o |n a u w z g l ¹d n i
j e d n z d w ó c h m o |l i w o [c i : z a s t o s o w a n i e f u n k c j i z a m i a s t p r o c e d u r y l u b w y k o r z y s t a n i e p a r a m e t r ó w
w t r y b i e O U T . W i ¹c e j i n f o r m a c j i C z y t e l n i k z n a j d z i e w d a l s z e j c z ¹[c i n i n i e j s z e g o r o z d z i a Bu .
N a j Ba t w i e j s z y m s p o s o b e m w y w o Ba n i a p r o c e d u r y z p o z i o m u k o d u P L / S Q L j e s t n a p i s a n i e j e j n a z w y
w r a z z p o t r z e b n y m i a r g u m e n t a m i , u m i e s z c z o n y m i w n a w i a s a c h i o d d z i e l o n y m i p r z e c i n k a m i :
B E G I N
n a z w a _ p r o c e d u r y ( a r g u m e n t 1 , a r g u m e n t 2 , . . . ) ;
E N D ;
P r z y k Ba d o w o , a b y d o d a d o k a t a l o g u n o w k s i |k ¹, n a l e |y n a p i s a :
B E G I N
a d d _ b o o k ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ,
' 1 0 0 0 0 0 0 0 1 ' ,
' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' ,
9 8 7 ,
' K o m p e n d i u m i n f o r m a c j i o j z y k u P L / S Q L , '
| | ' w r a z z p r z y k Ba d a m i i p o r a d a m i n a t e m a t p r o g r a m o w a n i a . ' ,
T O _ D A T E ( ' 0 1 - W R Z - 1 9 9 7 ' , ' D D - M O N - Y Y Y Y ' ) ) ;
E N D ;
/
T a k i e w y w o Ba n i e p r o c e d u r y s p o w o d u j e w s t a w i e n i e p o j e d n y m r e k o r d z i e d o t a b e l b o o k s o r a z b o o k _
c o p i e s . W p o w y |s z y m p r z y k Ba d z i e a r g u m e n t a m i s t a k z w a n e w y r a |e n i a l i t e r a l n e , a P L / S Q L
p r z e k a z u j e t e w a r t o [c i d o p r o g r a m u j a k o p a r a m e t r y w e j [c i o w e 1 , z g o d n i e z i c h k o l e j n o [c i . O z n a -
c z a t o , |e z a z w y c z a j w a r t o [c i t r z e b a p o d a w a w t a k i e j s a m e j k o l e j n o [c i , w j a k i e j w y s t ¹p u j p a r a m e -
t r y w p r o g r a m i e w y w o By w a n y m . I n f o r m a c j e t e p r z e d s t a w i o n o w p o n i |s z e j t a b e l i :
1
W y r a |e n i e p r z e k a z y w a n e p r z e z p r o g r a m w y w o Bu j c y n o s i n a z w ¹ a r g u m e n t u l u b p a r a m e t r u a k t u a l n e g o ,
p o d c z a s g d y z m i e n n e z d e f i n i o w a n e w n a g Bó w k u p r o g r a m u w y w o Bu j c e g o s n a z y w a n e p a r a m e t r a m i
f o r m a l n y m i l u b p o p r o s t u p a r a m e t r a m i . W t y m k o n t e k [c i e f o r m a l n y o z n a c z a f o r m u j c y p o s t a z m i e n n e j .
P o z y c j a N a z w a p a r a m e t r u T y p d a n y c h W a r t o [ u |y t a w p r z y k Ba d o w y m w y w o Ba n i u
p a r a m e t r u
i s b n _ i n ' 1 - 5 6 5 9 2 - 3 3 5 - 9 '
1 V A R C H A R 2
b a r c o d e _ i d _ i n ' 1 0 0 0 0 0 0 0 1 '
2 V A R C H A R 2
t i t l e _ i n ' P r o g r a m o w a n i e w O r a c l e P L / S Q L '
3 V A R C H A R 2
a u t h o r _ i n ' F e u e r s t e i n , S t e v e n , B i l l P r i b y l '
4 V A R C H A R 2
p a g e _ c o u n t _ i n 9 8 7
5 N U M B E R
s u m m a r y _ i n ' K o m p e n d i u m i n f o r m a c j i o j z y k u
6 V A R C H A R 2
P L / S Q L w r a z z p r z y k Ba d a m i i p o r a d a m i
n a t e m a t p r o g r a m o w a n i a . '
d a t e _ p u b l i s h e d _ i n T O _ D A T E ( ' 0 1 - W R Z - 1 9 9 7 ' , ' D D - M O N - Y Y Y Y ' )
7 D A T E
W a r t o z w r ó c i u w a g ¹, |e p o d a n e w a r t o [c i s z g o d n e z t y p a m i d a n y c h , j a k i c h w y m a g a p r o c e d u r a .
O z n a c z a t o , |e k a |d e m u p a r a m e t r o w i t y p u V A R C H A R 2 o d p o w i a d a c i g z n a k o w y , p a r a m e t r o w i t y p u
N U M B E R o d p o w i a d a s e r i a c y f r . C z y t e l n i k z a p e w n e z a u w a |y B, |e p a r a m e t r o w i t y p u D A T E o d p o -
w i a d a w a r t o [ o d o [ d z i w n y m w y g l d z i e .
P a r a m e t r d a t e _ p u b l i s h e d _ i n w y m a g a p o d a n i a w a r t o [c i t y p u D A T E s y s t e m u O r a c l e . W r z e -
c z y w i s t o [c i j e s t t o s e r i a b i t ó w o s k o m p l i k o w a n y m f o r m a c i e w e w n ¹t r z n y m z p e w n o [c i n i e j e s t
t o z w y k l e u |y w a n a k o m b i n a c j a r o k u , m i e s i c a i d n i a . C z ¹s t o s t o s o w a n m e t o d o t r z y m a n i a t a k i e j
w a r t o [c i j e s t w y k o r z y s t a n i e w e w n ¹t r z n e j f u n k c j i s y s t e m u O r a c l e o n a z w i e T O _ D A T E . P o d c z a s
w y w o By w a n i a t e j f u n k c j i n a l e |y p o d a d a t ¹, z a p i s a n w f o r m i e c i g u z n a k o w e g o ( w t y m p r z y p a d k u
' 0 1 - W R Z - 1 9 9 7 ' ) , o r a z d o d a t k o w y e l e m e n t , z w a n y m a s k f o r m a t u ( f o r m a t m a s k ) ' D D -
- M O N - Y Y Y Y ' . F u n k c j a T O _ D A T E p r ó b u j e d o p a s o w a d o s i e b i e p o s z c z e g ó l n e e l e m e n t y w y s p e c y -
f i k o w a n e g o c i g u z n a k ó w z o d p o w i e d n i m i e l e m e n t a m i m a s k i f o r m a t u j c e j . W p r z y p a d k u p o m y [l -
n e g o w y k o n a n i a f u n k c j a T O _ D A T E z w r a c a w a r t o [ b i n a r n , k t ó r s y s t e m O r a c l e r o z p o z n a j e j a k o
w a r t o [ t y p u D A T E . W p r z e c i w n y m p r z y p a d k u n a s t ¹p u j e p r z e c h w y c e n i e w y j t k u .
W r ó m y d o o m a w i a n e g o p r z y k Ba d u : f u n k c j a T O _ D A T E p r z e k a z u j e w s p o m n i a n w a r t o [ b i n a r n
j a k o a r g u m e n t d o p r o c e d u r y a d d _ b o o k . D l a t e j p r o c e d u r y s p o s ó b u t w o r z e n i a w a r t o [c i t y p u
D A T E j e s t b e z z n a c z e n i a b e z p o [r e d n i e p o d a w a n i e w a r t o [c i l i t e r a Bó w j e s t r ó w n i e d o b r y m r o z -
w i z a n i e m , c o u w z g l ¹d n i e n i e w y n i k u d z i a Ba n i a f u n k c j i , t a k i e j j a k n a p r z y k Ba d T O _ D A T E .
Z a s t o s o w a n i e f u n k c j i T O _ D A T E n i e z a w s z e j e s t k o n i e c z n e , p o n i e w a | s y s t e m O r a c l e
a u t o m a t y c z n i e p o d e j m u j e p r ó b ¹ k o n w e r s j i c i g u z n a k o w e g o n a d a t ¹. W s y t u a c j i t a k i e j t r z e b a
o p i e r a s i ¹ n a d o m y [l n e j m a s c e f o r m a t u s y s t e m u O r a c l e , k t ó r a m o |e z o s t a z m i e n i o n a p r z e z
a d m i n i s t r a t o r a b a z y d a n y c h . Z w i ¹k s z a t o p r a w d o p o d o b i e Ds t w o w y s t p i e n i a p e w n y c h
p r o b l e m ó w , j a k n a p r z y k Ba d i n t e r p r e t a c j a w a r t o [c i r o k u ( j a k i r o k j e s t o z n a c z o n y w a r t o [c i ' 0 0 ' ? ) .
O g ó l n i e m o |n a p o w i e d z i e , |e w c e l u k o n w e r s j i n a f o r m a t d a t y s y s t e m u O r a c l e n a l e |y
s k o r z y s t a z f u n k c j i T O _ D A T E .
P o w y |s z y f r a g m e n t k o d u z a w i e r a a r g u m e n t y p o d a n e w f o r m i e l i t e r a Bó w ( l i t e r a l s ) , t o z n a c z y z z a -
s t o s o w a n i e m k o n k r e t n y c h w a r t o [c i . J e s t t o d o b r y s p o s ó b w p r z y p a d k u p r z e p r o w a d z a n i a t e s t ó w ,
j e d n a k |e p o d c z a s p r o g r a m o w a n i a w j ¹z y k u P L / S Q L z a z w y c z a j u |y w a s i ¹ z m i e n n y c h w w y w o Ba -
n i a c h . W a r t o [c i z m i e n n y c h s z a z w y c z a j u s t a l a n e n i e p o p r z e z b e z p o [r e d n i z a p i s w k o d z i e p r o g r a m u ,
a l e n a p r z y k Ba d p r z e z u |y t k o w n i k a k o r z y s t a j c e g o z k l a w i a t u r y i e k r a n u , w y [w i e t l a j c e g o o d p o w i e d -
n i e i n f o r m a c j e .
W a r t o s i ¹ z a s t a n o w i n a d s p o s o b e m w y w o By w a n i a p r o c e d u r y w p r z y p a d k u p o s i a d a n i a n i e p e Bn e j
i n f o r m a c j i d o t y c z c e j d o d a w a n e j k s i |k i n a p r z y k Ba d w p r z y p a d k u b r a k u d a t y w y d a n i a l u b o p i s u .
P r z y k Ba d o w o , w t a k i m p r z y p a d k u m o |n a p o d a w a r t o [c i N U L L d l a t y c h p a r a m e t r ó w i s p r a w d z i , c z y
n i e s p o w o d u j e t o p r o b l e m ó w z w y k o n y w a n i e m p r o g r a m u : 2
a d d _ b o o k ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' , ' 1 0 0 0 0 0 0 0 1 ' , ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' , 9 8 7 , N U L L , N U L L ) ;
J e s t t o j e d n a z m o |l i w o [c i . M o |n a t a k |e w o g ó l e n i e p o d a w a w a r t o [c i a r g u m e n t ó w i o p r z e s i ¹ n a
w a r t o [c i a c h d o m y [l n y c h . W t y m p r z y p a d k u b ¹d z i e t o w y w o Ba n i e p o p r a w n e , g d y | w s e k c j i n a g Bó w -
k o w e j p r o c e d u r y d l a d w ó c h o s t a t n i c h p a r a m e t r ó w z d e f i n i o w a n o w a r t o [c i d o m y [l n e :
. . . s u m m a r y _ i n I N V A R C H A R 2 D E F A U L T N U L L ,
d a t e _ p u b l i s h e d _ i n I N D A T E D E F A U L T N U L L ) ;
W a r t o [c i N U L L w t y m k o n t e k [c i e s w p e Bn i p o p r a w n y m i w a r t o [c i a m i .
K o r z y s t a j c z w a r t o [c i d o m y [l n y c h , m o |n a p r z e d s t a w i o n e p o w y |e j w y w o Ba n i e u p r o [c i i p o m i n
o s t a t n i e d w a a r g u m e n t y :
a d d _ b o o k ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' , ' 1 0 0 0 0 0 0 0 1 ' , ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' , 9 8 7 ) ;
W t y m p r z y p a d k u m e c h a n i z m o d p o w i e d z i a l n y z a w y k o n a n i e k o d u P L / S Q L w m i e j s c e b r a k u j c y c h
a r g u m e n t ó w p o d s t a w i w a r t o [c i d o m y [l n e i w y k o n a n i e p r o c e d u r y o d b ¹d z i e s i ¹ i d e n t y c z n i e , j a k w e
w c z e [n i e j s z y m p r z y p a d k u .
M o |l i w o [ p o m i j a n i a a r g u m e n t ó w d l a p a r a m e t r ó w p o s i a d a j c y c h w a r t o [ d o m y [l n j e s t
n i e z w y k l e p r z y d a t n c e c h j ¹z y k a P L / S Q L , p o n i e w a | u m o |l i w i a p r a w i d Bo w e d z i a Ba n i e
j e d n o s t k i p r o g r a m o w e j n a w e t b e z p o d a n i a t y c h a r g u m e n t ó w .
P o n a d t o m e c h a n i z m t e n m o |e w o g r o m n y m s t o p n i u z r e d u k o w a n e g a t y w n y w p By w
e w e n t u a l n y c h , p r z y s z By c h m o d y f i k a c j i . P r z y k Ba d o w o , j e [l i z a i s t n i e j e p o t r z e b a d o d a n i a
d o p r o g r a m u p e w n y c h p a r a m e t r ó w , t o d z i ¹k i z d e f i n i o w a n i u i c h w a r t o [c i d o m y [l n y c h n i e
b ¹d z i e t r z e b a p r z e g l d a c a Be g o k o d u , a b y z m i e n i k a |d e w y s t ¹p u j c e w n i m w y w o Ba n i e .
2
Z e w z g l ¹d u n a o s z c z ¹d n o [ m i e j s c a w n i n i e j s z e j k s i |c e n i e z a w s z e j e s t p r z e d s t a w i a n y p e Bn y k o d p r o g r a m u .
W t y m p r z y p a d k u n a l e |a Bo b y d o d a i n s t r u k c j ¹ E X E C U T E l u b o b j w y w o Ba n i e s Bo w a m i k l u c z o w y m i
B E G I N i E N D o r a z d o d a k o Dc o w e / w c e l u u r u c h o m i e n i a t e j p r o c e d u r y z p o z i o m u S Q L * P l u s .
W a r t o t e | w i e d z i e , |e w y w o Bu j c p r o c e d u r ¹ m o |n a j e d n o c z e [n i e p o m i j a p a r a m e t r y p o s i a d a j c e
w a r t o [c i d o m y [l n e o r a z p o d a w a w a r t o [c i N U L L :
a d d _ b o o k ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' , ' 1 0 0 0 0 0 0 0 1 ' , ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' , N U L L ,
9 8 7 ) ;
C z y t e l n i k b y m o |e m a p e w n e p r o b l e m y z z a p a m i ¹t a n i e m , k t ó r a w a r t o [ o d p o w i a d a k t ó r e m u a r -
g u m e n t o w i , a l e j e s t t o r z e c z n o r m a l n a w p r z y p a d k u n o t a c j i p o z y c y j n e j ( p o s i t i o n a l n o t a t i o n ) , c o o z n a -
c z a k o n i e c z n o [ p o d a w a n i a a r g u m e n t ó w w t a k i e j s a m e j k o l e j n o [c i , w j a k i e j z a p i s a n o d a n e p a r a m e t r y
w k o d z i e p r o g r a m u .
R o z w i z a n i e m t y c h p r o b l e m ó w m o |e b y z a s t o s o w a n i e i n n e g o , b a r d z o u |y t e c z n e g o m e c h a n i z m u
n o t a c j i i m i e n n e j ( n a m e d n o t a t i o n ) . S p o s ó b d z i a Ba n i a n o t a c j i i m i e n n e j n a j l e p i e j m o |n a w y j a [n i
n a p r z y k Ba d z i e . W p r z y p a d k u p o n i |s z e g o w y w o Ba n i a p r o c e d u r y a d d _ b o o k w y k o r z y s t a n o w Ba [n i e
t e n m e c h a n i z m :
a d d _ b o o k ( i s b n _ i n = > ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ,
t i t l e _ i n = > ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
s u m m a r y _ i n = > ' K o m p e n d i u m i n f o r m a c j i o j z y k u P L / S Q L , ' | |
' w r a z z p r z y k Ba d a m i i p o r a d a m i n a t e m a t p r o g r a m o w a n i a . ' ,
a u t h o r _ i n = > ' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' ,
d a t e _ p u b l i s h e d _ i n = > N U L L ,
p a g e _ c o u n t _ i n = > 9 8 7 ,
b a r c o d e _ i d _ i n = > ' 1 0 0 0 0 0 0 0 1 ' ) ;
Z p o w y |s z e g o w y n i k a , |e d l a k a |d e g o a r g u m e n t u p o d a j e s i ¹ n a z w ¹ p a r a m e t r u z d e f i n i o w a n e g o w p r o -
c e d u r z e a d d _ b o o k , s y m b o l = > o r a z w a r t o [ d a n e g o p a r a m e t r u . Z a l e t t e j m e t o d y j e s t t o , |e p o -
s z c z e g ó l n e a r g u m e n t y m o |n a p o d a w a w d o w o l n e j k o l e j n o [c i n i e t r z e b a p a m i ¹t a k o l e j n o [c i ,
w j a k i e j z d e f i n i o w a n o p a r a m e t r y w p r o c e d u r z e .
W y b ó r m e t o d y c a Bk o w i c i e z a l e |y o d p r o g r a m i s t y d l a k o m p i l a t o r a j e s t t o b e z z n a c z e n i a . A r g u -
m e n t e m p r z e m a w i a j c y m z a s t o s o w a n i e m n o t a c j i i m i e n n e j m o |e b y f a k t , |e w t e n s p o s ó b k o d s t a j e
s i ¹ d u |o b a r d z i e j p r z e j r z y s t y . Z n a c z e n i e w y r a |e n i a p a g e _ c o u n t = > 9 8 7 n i e p o z o s t a w i a w t -
p l i w o [c i , a n a p e w n o n i e j e s t t a k w p r z y p a d k u p o d a n i a s a m e j w a r t o [c i 9 8 7 . M o |n a t a k |e , o c z y w i -
[c i e , p o m i j a p a r a m e t r y o p c j o n a l n e ( d o m y [l n e ) w t y m p r z y p a d k u m o |e t o b y , p r z y k Ba d o w o ,
d a t e _ p u b l i s h e d _ i n :
a d d _ b o o k ( i s b n _ i n = > ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ,
t i t l e _ i n = > ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
s u m m a r y _ i n = > ' K o m p e n d i u m i n f o r m a c j i o j z y k u P L / S Q L , ' | |
' w r a z z p r z y k Ba d a m i i p o r a d a m i n a t e m a t p r o g r a m o w a n i a . ' ,
a u t h o r _ i n = > ' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' ,
p a g e _ c o u n t _ i n = > 9 8 7 ,
b a r c o d e _ _ i s _ i n = > ' 1 0 0 0 0 0 0 0 1 ' ) ;
P o z a k o n i e c z n o [c i p i s a n i a w i ¹k s z e j i l o [c i k o d u i s t n i e j e t a k |e p e w n a n i e d o g o d n o [, w y n i k a j c a z e
s t o s o w a n i a t e j n o t a c j i . W r a z i e p o t r z e b y z m i a n y n a z w y p a r a m e t r u k o n i e c z n e j e s t u a k t u a l n i e n i e n i e
t y l k o s a m e j p r o c e d u r y , a l e t a k |e k a |d e g o j e j w y w o Ba n i a w n o t a c j i i m i e n n e j . Z d r u g i e j j e d n a k s t r o -
n y z m i a n a n a z w y p a r a m e t r u j e s t r a c z e j r z a d k o w y k o n y w a n o p e r a c j .
I s t n i e j e t a k |e m o |l i w o [ w y k o r z y s t a n i a o b y d w ó c h n o t a c j i w j e d n y m w y w o Ba n i u . N a l e |y p a m i ¹t a
j e d y n i e o p a r u z a s a d a c h . N a l e |y z a c z o d n o t a c j i p o z y c y j n e j , a p o p r z e j [c i u d o n o t a c j i i m i e n n e j
t r z e b a p r z y n i e j p o z o s t a d o k o Dc a . O t o p r z y k Ba d :
a d d _ b o o k ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' , ' 1 0 0 0 0 0 0 0 1 ' ,
' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ,
s u m m a r y _ i n = > N U L L , a u t h o r _ i n = > ' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' ,
p a g e _ c o u n t _ i n = > 9 8 7 ) ;
U |y w a n i e n o t a c j i i m i e n n e j
W r a z i e k o n i e c z n o [c i d o k o n a n i a w y b o r u n a l e |y s t o s o w a n o t a c j w y m i e n i a j c w s z d z i e t a m ,
g d z i e z n a c z e n i e p o s z c z e g ó l n y c h a r g u m e n t ó w n i e j e s t o c z y w i s t e . P r z y k Ba d o w o :
u a k t u a l n i j _ m o j _ p r o f i l ( u l u b _ k s i a z k a _ i s b n = > ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ) ;
N o t a c j i p o z y c y j n e j n a l e |y u |y w a w p r z y p a d k u c z s t o u |y w a n y c h p r o g r a m ó w u |y t k o w y c h ,
k t ó r e p o s i a d a j j e d e n l u b d w a p a r a m e t r y , a z n a c z e n i e t y c h p a r a m e t r ó w j e s t o c z y w i s t e :
D B M S _ O U T P U T . P U T _ L I N E ( ' W i t a j M u d d a h . ' ) ;
Z a s t o s o w a n i e o b y d w ó c h n o t a c j i m o |e o k a z a s i p r z y d a t n e w s y t u a c j i , g d y n a p r z y k Ba d
p i e r w s z y a r g u m e n t j e s t o c z y w i s t y , z a [ k o l e j n e n i e :
m o j e _ p u t _ l i n e ( ' W i t a j F a d d u h . ' , l i n i e _ d o _ p o m i n i e c i a = > 2 ) ;
W t y m p o d r o z d z i a l e p r z e d s t a w i o n o p r z y k Ba d k o n s t r u o w a n i a i w y k o r z y s t y w a n i a p r o c e d u r y m a g a z y -
n o w a n e j j ¹z y k a P L / S Q L , k t ó r a w y k o n u j e p o j e d y n c z e z a d a n i e . Z a d a n i e t o p o l e g a n a d o d a n i u d o b a z y
d a n y c h i n f o r m a c j i o k s i |c e i d e n t y f i k o w a n e j z a p o m o c o d p o w i e d n i e g o k o d u k r e s k o w e g o . K o l e j -
n e z a d a n i e p o l e g a n a o k r e [l e n i u l i c z b y e g z e m p l a r z y d a n e j k s i |k i . P o t r z e b a p o b i e r a n i a i n f o r m a c j i
o t a k i e j p o j e d y n c z e j w a r t o [c i s t a n o w i i d e a l n s p o s o b n o [ w y k o r z y s t a n i a f u n k c j i j ¹z y k a P L / S Q L ,
k t ó r a z e s w e j d e f i n i c j i z w r a c a j a k [ w a r t o [ ( l u b k o Dc z y d z i a Ba n i e n i e o b s Bu |o n y m w y j t k i e m ) .
P r z e d p o d j ¹c i e m p r ó b y z a p i s a n i a k o d u f u n k c j i t r z e b a n a j p i e r w z a p o z n a s i ¹ z o g ó l n s k Ba d n i t w o -
r z e n i a f u n k c j i . F u n k c j e s t a n o w i d r u g i t y p p r o g r a m ó w m a g a z y n o w a n y c h .
P o n i |e j p r z e d s t a w i o n o w z o r z e c d e f i n i o w a n i a f u n k c j i . E l e m e n t y , k t ó r e o z n a c z o n o z a p o m o c c z c i o n -
k i p o g r u b i o n e j , m o g b y j e s z c z e C z y t e l n i k o w i n i e z n a n e .
C R E A T E [ O R R E P L A C E ] F U N C T I O N n a z w a _ f u n k c j i
( p a r a m e t r 1 T R Y B T Y P _ D A N Y C H [ D E F A U L T w y r a |e n i e ] ,
p a r a m e t r 2 T R Y B T Y P _ D A N Y C H [ D E F A U L T w y r a |e n i e ] ,
. . . )
R E T U R N T Y P _ D A N Y C H
A S
[ z m i e n n a 1 T Y P _ D A N Y C H ;
z m i e n n a 2 T Y P _ D A N Y C H ;
. . . ]
B E G I N
i n s t r u k c j e _ w y k o n a w c z e ;
R E T U R N w y r a |e n i e ;
[ E X C E P T I O N
W H E N n a z w a _ w y j t k u
T H E N
i n s t r u k c j e _ w y k o n a w c z e ]
E N D ;
/
R ó |n i c e p o m i ¹d z y w z o r c e m d o t y c z c y m f u n k c j i i w z o r c e m p r o c e d u r y s m i n i m a l n e . P o z a z a m i a n
s Bo w a k l u c z o w e g o P R O C E D U R E n a F U N C T I O N w i n s t r u k c j i C R E A T E , k o d r ó |n i s i ¹ t y l k o w d w ó c h
m i e j s c a c h . P i e r w s z y m z n i c h j e s t n a g Bó w e k , g d z i e p o d a j e s i ¹ z w r a c a n y t y p d a n y c h , a d r u g i m j e s t
c z ¹[ w y k o n a w c z a , g d z i e n a s t ¹p u j e b e z p o [r e d n i e p r z e k a z a n i e z w r a c a n e j w a r t o [c i d o p r o g r a m u w y -
w o Bu j c e g o .
R E T U R N T Y P _ D A N Y C H
W n a g Bó w k u w y r a |e n i e R E T U R N s t a n o w i c z ¹[ d e k l a r a c j i f u n k c j i . J e s t t o i n f o r m a c j a o t y p i e
d a n y c h w a r t o [c i , k t ó r e m a j b y z w r a c a n e w w y n i k u w y w o Ba n i a f u n k c j i .
R E T U R N w y r a |e n i e
W e w n t r z s e k c j i w y k o n a w c z e j w y r a |e n i e R E T U R N j e s t i n s t r u k c j i o z n a c z a , |e d z i a Ba n i a z o s t a By
z a k o Dc z o n e i |e n a l e |y z w r ó c i ( r e t u r n ) w a r t o [, k t ó r d e f i n i u j e w y r a |e n i e . I n s t r u k c j a R E T U R N
m o |e z n a l e z s i ¹ t a k |e w s e k c j i E X C E P T I O N .
O b y d w i e w y m i e n i o n e i n s t r u k c j e s w y m a g a n e . W n a s t ¹p n y m p o d r o z d z i a l e p r z e d s t a w i o n o k o d g o -
t o w e j f u n k c j i .
F u n k c j a b o o k _ c o p y _ q t y z w r a c a l i c z b ¹ k s i |e k , k t ó r y c h n u m e r I S B N o d p o w i a d a p o d a n e m u .
W p o n i |s z y m , p r z y k Ba d o w y m k o d z i e f u n k c j i d o p o b r a n i a d a n y c h z b a z y d a n y c h w y k o r z y s t a n o
k u r s o r ( c u r s o r ) . S z c z e g ó Bo w e o m ó w i e n i e t e j s t r u k t u r y z n a j d u j e s i ¹ d o p i e r o w r o z d z i a l e 5 . U o g ó l n i a -
j c , k u r s o r j e s t o k r e [l o n y m m i e j s c e m w p a m i ¹c i , d o k t ó r e g o p r o g r a m m o |e p r z e n i e [ p e w n e d a n e p o -
b r a n e z b a z y d a n y c h . W s e k c j i d e k l a r a c j i n a s t ¹p u j e p o w i z a n i e p e w n e j i n s t r u k c j i S E L E C T z k u r -
s o r e m . P o w i z a n i e t o z a c h o d z i z a p o m o c i n s t r u k c j i C U R S O R . W a r t o z w r ó c i u w a g ¹, |e p a r a m e t r
w e j [c i o w y i s b n _ i n w y s t ¹p u j e p o p r a w e j s t r o n i e w y r a |e n i a W H E R E . W c e l u p o b r a n i a d a n y c h n a l e -
|y k u r s o r o t w o r z y ( o p e n ) , p o b r a ( f e t c h ) z n i e g o d a n e , a w k o Dc u g o z a m k n ( c l o s e ) .
C R E A T E O R R E P L A C E F U N C T I O N b o o k _ c o p y _ q t y ( i s b n _ i n I N V A R C H A R 2 )
R E T U R N N U M B E R
A S
n u m b e r _ o _ c o p i e s N U M B E R : = 0 ;
C U R S O R b c _ c u r I S
S E L E C T C O U N T ( * )
F R O M b o o k _ c o p i e s
W H E R E i s b n = i s b n _ i n ;
B E G I N
I F i s b n _ i n I S N O T N U L L
T H E N
O P E N b c _ c u r ;
F E T C H b c _ c u r I N T O n u m b e r _ o _ c o p i e s ;
C L O S E b c _ c u r ;
E N D I F ;
R E T U R N n u m b e r _ o _ c o p i e s ;
E N D ;
/
K o n s t r u k c j a f u n k c j i n i e w i e l e o d b i e g a o d p r o c e d u r y . R ó |n i s i ¹ o n e j e d n a k s w o i m z a c h o w a n i e m
s z c z e g ó By d o t y c z c e d z i a Ba n i a f u n k c j i p r z e d s t a w i o n o n a r y s u n k u 3 . 6 .
R y s u n e k 3 . 6 . W y k o r z y s t a n i e f u n k c j i j z y k a P L / S Q L w c e l u z w r ó c e n i a p e w n e j w a r t o [c i d o p r o g r a m u w y w o Bu j c e g o ; d l a d a n e j w a r t o [c i
I S B N f u n k c j a z w r a c a l i c z b e g z e m p l a r z y z n a j d u j c y c h s i w b a z i e d a n y c h
Z a s a d n i c z a r ó |n i c a p o m i ¹d z y w y w o Ba n i e m f u n k c j i i p r o c e d u r y w y n i k a z t e g o , |e f u n k c j e z w r a c a j
p e w n w a r t o [.
N a j p r o s t s z y m s p o s o b e m w y k o r z y s t a n i a w a r t o [c i w y n i k o w e j , z w r a c a n e j p r z e z f u n k c j ¹, j e s t j e j p r z y -
p i s a n i e d o p e w n e j z m i e n n e j , k t ó r e j t y p o d p o w i a d a t y p o w i z w r a c a n e j w a r t o [c i . Z w y k l e w y g l d a t o
w n a s t ¹p u j c y s p o s ó b :
D E C L A R E
z m i e n n a _ l o k a l n a T Y P _ D A N Y C H ;
B E G I N
z m i e n n a _ l o k a l n a : = n a z w a _ f u n k c j i ( a r g u m e n t 1 , a r g u m e n t 2 , . . . ) ;
E N D ;
/
J e s t t o z a t e m t y p o w a i n s t r u k c j a p r z y p i s a n i a , g d z i e w y w o Ba n i e f u n k c j i z n a j d u j e s i ¹ p o p r a w e j s t r o n i e
o p e r a t o r a p r z y p i s a n i a , a z m i e n n a l o k a l n a p o l e w e j . M o |n a w i ¹c n a p i s a :
D E C L A R E
i l e I N T E G E R ;
B E G I N
i l e : = b o o k _ c o p y _ q t y ( ' 1 . 5 6 5 9 2 - 3 3 5 - 9 ' ) ;
E N D ;
/
Z i n f o r m a c j i p r z e d s t a w i o n y c h w r o z d z i a l e 1 . w y n i k a , |e w c e l u w y [w i e t l e n i a w y n i k ó w n a e k r a n i e
m o |n a p r z e k a z a j e d o f u n k c j i D B M S _ O U T P U T . P U T _ L I N E :
S E T S E R V E R O U T P U T O N
B E G I N
D B M S _ O U T P U T . P U T _ L I N E ( ' L i c z b a k o p i i 1 - 5 6 5 9 2 - 3 3 5 - 9 : '
| | b o o k _ c o p y _ q t y ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ) ) ;
E N D ;
/
F u n k c j a b o o k _ c o p y _ q t y z w r a c a w a r t o [ t y p u V A R C H A R 2 , c o u m o |l i w i a k o n k a t e n a c j ¹ z i n n y m
c i g i e m z n a k ó w i u |y c i e f u n k c j i P U T _ L I N E . T a k i e z a g n i e |d |a n i e f u n k c j i w e w n t r z i n n y c h i n -
s t r u k c j i j e s t c z ¹s t o s t o s o w a n t e c h n i k .
P o n i |e j w y m i e n i o n o k i l k a w a r t y c h z a p a m i ¹t a n i a z a s a d d o t y c z c y c h w y k o r z y s t a n i a f u n k c j i :
1 . N i e m o |n a t w o r z y n i e z a l e |n y c h ( s t a n d a l o n e ) f u n k c j i o t a k i c h s a m y c h n a z w a c h , j a k i e n o s z
n i e z a l e |n e p r o c e d u r y . J e d n a k |e p r z y j ¹c i e k o n w e n c j i n a z y w a n i a p r o c e d u r w y r a |e n i e m
c z a s o w n i k o w y m , a f u n k c j i w y r a |e n i e m r z e c z o w n i k o w y m m o |e u c h r o n i p r z e d p o t e n c j a l n y m i
p r o b l e m a m i .
2 . N i e u w z g l ¹d n i e n i e w n a g Bó w k u w y r a |e n i a R E T U R N s p o w o d u j e , |e f u n k c j a n i e z o s t a n i e
s k o m p i l o w a n a . J e s t t o d z i a Ba n i e p o z y t y w n e , g d y | b B¹d y c z a s u k o m p i l a c j i u w a |a s i ¹ z a m e t o d ¹
w c z e s n e g o o s t r z e g a n i a p r z e d e w e n t u a l n y m i p r o b l e m a m i . J e [l i j e d n a k s Bo w o k l u c z o w e R E T U R N
z o s t a n i e p o m i n i ¹t e w s e k c j i w y k o n a w c z e j , s y s t e m O r a c l e p o i n f o r m u j e o t y m d o p i e r o p o
u r u c h o m i e n i u f u n k c j i . Z o s t a n i e w t e d y w y g e n e r o w a n y k o m u n i k a t o b B¹d z i e O R A - 0 6 5 0 3 :
P L / S Q L : F u n c t i o n r e t u r n e d w i t h o u t v a l u e . D l a t e g o z a w s z e w a r t o p r z e p r o w a d z a d o g B¹b n e
t e s t y n a p i s a n y c h p r o g r a m ó w .
P r o c e d u r y a f u n k c j e
U o g ó l n i a j c , f u n k c j a s Bu |y d o p r z e p r o w a d z e n i a p e w n y c h o p e r a c j i , k t ó r y c h c e l e m j e s t o t r z y m a -
n i e p e w n e j w a r t o [c i . O c z y w i [c i e , j e s t m o |l i w e w y k o r z y s t a n i e p r o c e d u r y z a m i a s t f u n k c j i i z a -
s t o s o w a n i e p o j e d y n c z e g o p a r a m e t r u O U T , j e d n a k t a k i e p o s t p o w a n i e n i e j e s t z a l e c a n e .
W a r t o t e | p a m i t a , |e n i e n a l e |y p i s a p r o g r a m ó w , k t ó r e z w r a c a j w a r t o [ i n f o r m u j c o s t a n i e
z a k o Dc z e n i a . P o s t p o w a n i e t a k i e j e s t u z a s a d n i o n e w j z y k u t a k i m j a k C , l e c z w p r z y p a d k u
P L / S Q L i n f o r m o w a n i e o b Bd a c h p o w i n n o s i o d b y w a p o p r z e z p r z e c h w y t y w a n i e w y j t k ó w .
J e [l i p r o g r a m m a g a z y n o w a n y n i e p r z e c h w y c i w y j t k u , z a k Ba d a s i , |e p o d c z a s w y k o n a n i a t e g o
p r o g r a m u n i e n a p o t k a n o |a d n y c h p r o b l e m ó w .
C z a s a m i o k a z u j e s i , |e i s t n i e j e p o t r z e b a z w r ó c e n i a w i c e j n i | j e d n e j w a r t o [c i w t a k i m p r z y -
p a d k u n a l e |y u t w o r z y p r o c e d u r . W c e l u z w r ó c e n i a w i e l u w a r t o [c i t r z e b a w y k o r z y s t a k i l k a
p a r a m e t r ó w w t r y b i e O U T l u b I N O U T , k t ó r y c h w a r t o [ m o |e b y o d c z y t a n a p r z e z p r o g r a m
w y w o Bu j c y p o z a k o Dc z e n i u d z i a Ba n i a p r o c e d u r y . Z d e f i n i o w a n i e k i l k u p a r a m e t r ó w w t r y b i e
O U T m o |e w p r o w a d z i n i e c o z a m i e s z a n i a , j e d n a k i s t n i e j e m e t o d a z a p i s y w a n i a p r o g r a m ó w , k t ó -
r e m u s z z w r a c a w i k s z i l o [ d a n y c h w b a r d z i e j c z y t e l n y s p o s ó b . M o |n a b o w i e m r ó |n e e l e -
m e n t y p o Bc z y w j e d n c a Bo [ p r z e z z a s t o s o w a n i e j e d n e g o z e z Bo |o n y c h t y p ó w d a n y c h , j a k n a
p r z y k Ba d r e k o r d , k o l e k c j a l u b t a k z w a n y t y p o b i e k t o w y . Z a g a d n i e n i a t e o p i s a n o w r o z d z i a l e 5 .
3 . P r o g r a m w y w o Bu j c y p o w y w o Ba n i u f u n k c j i m u s i w j a k i [ s p o s ó b w y k o r z y s t a z w r ó c o n w a r t o [,
n a p r z y k Ba d p r z y p i s a j p e w n e j z m i e n n e j . P L / S Q L , w p r z e c i w i e Ds t w i e d o j ¹z y k a C , n i e d o p u s z c z a
w y w o Ba n i a f u n k c j i i z i g n o r o w a n i a z w r a c a n e j w a r t o [c i .
4 . P o w y k o n a n i u i n s t r u k c j i R E T U R N w s e k c j i w y k o n a w c z e j d o p r o g r a m u w y w o Bu j c e g o z o s t a j e
p r z e k a z a n a n i e t y l k o w a r t o [, a l e t a k |e s t e r o w a n i e w y k o n a n i e m p r o g r a m u . I n n y m i s Bo w y , k o d
z a p i s a n y p o i n s t r u k c j i R E T U R N n i e j e s t w y k o n y w a n y .
W a r t o r ó w n i e | z w r a c a u w a g ¹ n a s t o s o w a n t e r m i n o l o g i ¹. C z a s a m i , g d y k t o [ m ó w i o p r o c e d u r a c h
m a g a z y n o w a n y c h , n a p r a w d ¹ m a n a m y [l i p r o g r a m y m a g a z y n o w a n e , c z y l i a l b o p r o c e d u r y , a l b o
f u n k c j e . Z d r u g i e j j e d n a k s t r o n y , m o |e c h o d z i w Ba [n i e o p r o c e d u r y , n i e z a [ f u n k c j e . J e [l i o g ó l n y
k o n t e k s t r o z m o w y n i e p o z w a l a n a r o z p o z n a n i e , o k t ó r m o |l i w o [ c h o d z i , z p e w n o [c i p r o [b a
o w y j a [n i e n i e n i e b ¹d z i e o b j a w e m d y l e t a n c t w a .
P o w y |e j p r z e d s t a w i o n o n a s t ¹p u j c y s p o s ó b w y w o Ba n i a f u n k c j i :
D E C L A R E
i l e I N T E G E R ;
B E G I N
i l e : = b o o k _ c o p y _ q t y ( ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ) ;
E N D ;
/
W y d a w a Bo b y s i ¹, |e p o w y |s z y k o d m o |n a z a p i s a w b a r d z i e j z w i ¹z By s p o s ó b p o p r z e z w y w o Ba n i e
f u n k c j i p o d c z a s i n i c j a l i z a c j i z m i e n n e j :
D E C L A R E
i l e I N T E G E R : = b o o k _ c o p y _ q t y ( ' x y z ' ) ;
B E G I N
Z p o z o r u w s z y s t k o j e s t w p o r z d k u . J e d n a k j e [l i f u n k c j a p r z e c h w y c i w y j t e k , t o o k a z u j e s i ¹, |e
|a d e n k o d o b s Bu g i w y j t k u w t e j s e k c j i n i e z d o Ba p r z e c h w y c i w y j t k u , k t ó r y e w e n t u a l n i e m o |e
p o j a w i s i ¹ p o t a k i m w y w o Ba n i u f u n k c j i b o o k _ c o p y _ q t y . A z a t e m :
D E C L A R E
i l e I N T E G E R : = b o o k _ c o p y _ q t y ( ' x y z ' ) ;
B E G I N
. . . c o k o l w i e k . . .
E X C E P T I O N
W H E N O T H E R S
T H E N
/ * N I E S P O D Z I A N K A ! W y j t k i p r z e c h w y c o n e w s e k c j i d e k l a r a c j i
| | N I E M O G b y o b s Bu |o n e w t y m m i e j s c u !
* /
. . .
E N D ;
/
W y t Bu m a c z e n i e p o w o d u t a k i e g o z a c h o w a n i a w y k r a c z a p o z a z a k r e s n i n i e j s z e j k s i |k i . D l a t e g o n a l e |y
p o p r o s t u z a p a m i ¹t a , |e n i e n a l e |y d o k o n y w a p r ó b i n i c j a l i z o w a n i a z m i e n n y c h z a p o m o c f u n k c j i .
Z p e w n o [c i C z y t e l n i k c h c i a Bb y k o n t y n u o w a r o z w i j a n i e t w o r z o n e j , p r z y k Ba d o w e j a p l i k a c j i . N i e
m o |n a j e d n a k z a p o m i n a o k o n s e k w e n t n y m u p e w n i a n i u s i ¹, |e z a p i s a n y o d n i e z a w i e r a b B¹d ó w . Z t e g o
t e | w z g l ¹d u p o n i |e j z a m i e s z c z o n o p e w n e g o r o d z a j u d y g r e s j ¹.
Z p e w n o [c i k a |d y z e t k n B s i ¹ j u | z w y r a |e n i e m g a r b a g e i n , g a r b a g e o u t ( G I G O ) . J e s t t o w y r a |e -
n i e d o [ c z ¹s t o u |y w a n e l u b s By s z a n e p r z e z t e l e f o n p o d c z a s r o z m o w y z o b s Bu g t e c h n i c z n . O z n a c z a
o n o m n i e j w i ¹c e j t y l e , c o w p r o w a d z a s z b B¹d n e d a n e u z y s k u j e s z b B¹d n e w y n i k i .
U n i k n i ¹c i e p r o b l e m u G I G O j e s t s p r a w d o [ p r o b l e m a t y c z n . I s t n i e j e t e n d e n c j a d o n i e u z a s a d n i o n e -
g o o p t y m i z m u w k w e s t i i w y k o r z y s t y w a n i a u t w o r z o n y c h a p l i k a c j i . C h ¹t n i e j p r z y j m u j e s i ¹ z a Bo |e n i e
t i d y i n , t i d y o u t ( w p r o w a d z a s z p o p r a w n e d a n e u z y s k u j e s z p o p r a w n e w y n i k i ) 3 . N i k t n i e l u b i z g ó r y
p l a n o w a d z i a Ba D z a p o b i e g a w c z y c h w z g l ¹d e m z a s t o s o w a n i a n i e p o p r a w n y c h d a n y c h w e j [c i o w y c h .
W c e l u u n i k n i ¹c i a n i e p r z e w i d z i a n y c h z a Ba m a D p r o g r a m u t r z e b a p r z e p r o w a d z i s e r i e t e s t ó w . P r z e -
p r o w a d z e n i e d o b r y c h t e s t ó w o z n a c z a g e n e r o w a n i e p r z e r ó |n y c h k o m b i n a c j i d a n y c h t e s t o w y c h ,
k t ó r e p o t e n c j a l n i e p o w i n n y z a w i e s i p r o g r a m . P o t e m n a l e |y s p r a w d z i o c z e k i w a n y w y n i k , u r u -
c h o m i p r o g r a m , p o r ó w n a z d a n y m i w y j [c i o w y m i , p o p r a w i p r o g r a m i w r e s z c i e & p o n o w n i e
p r z e p r o w a d z i t e s t y .
Z p e w n o [c i w a r t o u p r o [c i t e n c a By p r o c e s .
M o n o t o n n e w y k o n y w a n i e f r a g m e n t u k o d u z r ó |n y m i d a n y m i w e j [c i o w y m i j e s t d o b r o k a z j d o n a -
p i s a n i a p e w n y c h p r o g r a m ó w u |y t k o w y c h . P o n i |e j p r z e d s t a w i o n o s p o s ó b z a u t o m a t y z o w a n i a t e g o
m ¹c z c e g o p r o c e s u z a p o m o c t a k i c h p r o g r a m ó w .
D z i a Ba n i e p i e r w s z e g o , s p r a w d z a j c e g o p r o g r a m u p o l e g a n a p o r ó w n y w a n i u d w ó c h w a r t o [c i i w y [w i e -
t l a n i u k o m u n i k a t u o p o m y [l n y m l u b n i e p o m y [l n y m p r z e b i e g u t e g o t e s t u . U p o d s t a w t e s t o w a n i a
l e |y w Ba [n i e p o r ó w n y w a n i e w a r t o [c i w a r t o [c i f a k t y c z n e j z e s p o d z i e w a n w a r t o [c i w y j [c i o w .
D l a t e g o t e | w s p o m n i a n y p r o g r a m j e s t b a r d z o u |y t e c z n y . Z a w i e r a B o n t a k |e o p i s p o s z c z e g ó l n y c h
i t e r a c j i , t a k a b y u m o |l i w i o t r z y m a n i e i n f o r m a c j i o t y m , d l a j a k i c h w a r t o [c i w y k o n a n i e p r o g r a m u
b ¹d z i e n i e p o m y [l n e . P o n i |e j z n a j d u j e s i ¹ k o d t e j p r o c e d u r y t e s t r ó w n o [c i ( t e s t r o w n o s c i ) :
C R E A T E O R R E P L A C E P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N V A R C H A R 2 , a c t u a l _ v a l u e I N V A R C H A R 2 )
A S
B E G I N
D B M S _ O U T P U T . P U T ( d e s c r i p t i o n | | ' : ' ) ;
I F e x p e c t e d _ v a l u e = a c t u a l _ v a l u e
O R ( e x p e c t e d _ v a l u e I S N U L L A N D a c t u a l _ v a l u e I S N U L L )
T H E N
D B M S _ O U T P U T . P U T _ L I N E ( ' P A S S E D ' ) ;
3
N i e p r z e t Bu m a c z a l n a g r a s Bó w : g a r b a g e t o p o a n g i e l s k u [m i e c i , b z d u r y ; t i d y c z y s t y , s c h l u d n y p r z y p . t Bu m .
E L S E
D B M S _ O U T P U T . P U T _ L I N E ( ' F A I L E D . E x p e c t e d ' | | e x p e c t e d _ v a l u e
| | ' ; g o t ' | | a c t u a l _ v a l u e ) ;
E N D I F ;
E N D ;
/
W p o w y |s z e j p r o c e d u r z e p o r ó w n y w a n i u p o d l e g a j c i g i z n a k ó w ( V A R C H A R 2 ) , a l e m o |n a o c z y w i -
[c i e n a p i s a a n a l o g i c z n e p r o c e d u r y o b s Bu g u j c e l i c z b y , d a t y c z y t e | w a r t o [c i l o g i c z n e .
K o l e j n y m k r o k i e m b ¹d z i e n a p i s a n i e p r o g r a m u w y w o Bu j c e g o p r o c e d u r ¹ a d d _ b o o k n a w i e l e s p o -
s o b ó w t a k |e w r a z i e z a s t o s o w a n i a n i e p r a w i d Bo w y c h d a n y c h w e j [c i o w y c h . P o n i |s z y p r o g r a m z e
w z g l ¹d u n a j e g o o b s z e r n o [ ( 8 9 l i n i i k o d u ) p o d z i e l o n o n a f r a g m e n t y . D o d a t k o w o p o n u m e r o w a n o
p o s z c z e g ó l n e l i n i e w c e l u u Ba t w i e n i a o d w o By w a n i a s i ¹ d o n i c h .
1 D E C L A R E
2 l _ i s b n V A R C H A R 2 ( 1 3 ) : = ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ;
3 l _ t i t l e V A R C H A R 2 ( 2 0 0 ) : = ' O r a c l e P L / S Q L P r o g r a m m i n g ' ;
4 l _ s u m m a r y V A R C H A R 2 ( 2 0 0 0 ) : = ' R e f e r e n c e f o r P L / S Q L d e v e l o p e r s , ' | |
5 ' i n c l u d i n g e x a m p l e s a n d b e s t p r a c t i c e r e c o m m e n d a t i o n s . ' ;
6 l _ a u t h o r v a r c h a r 2 ( 2 0 0 ) : = ' F e u e r s t e i n , S t e v e n , a n d B i l l P r i b y l ' ;
7 l _ d a t e _ p u b l i s h e d D A T E : = T O _ D A T E ( ' 0 1 - W R Z - 1 9 9 7 ' , ' D D - M O N - Y Y Y Y ' ) ;
8 l _ p a g e _ c o u n t N U M B E R : = 9 8 7 ;
9 l _ b a r c o d e _ i d V A R C H A R 2 ( 1 0 0 ) : = ' 1 0 0 0 0 0 0 0 1 ' ;
1 0
1 1 C U R S O R b o o k C o u n t C u r I S
1 2 S E L E C T C O U N T ( * ) F R O M b o o k s ;
1 3
1 4 C U R S O R c o p i e s C o u n t C u r I S
1 5 S E L E C T C O U N T ( * ) F R O M b o o k _ c o p i e s ;
1 6
1 7 C U R S O R b o o k M a t c h C u r I S
1 8 S E L E C T C O U N T ( * ) F R O M b o o k s
1 9 W H E R E i s b n = l _ i s b n A N D t i t l e = l _ t i t l e A N D s u m m a r y = l _ s u m m a r y
2 0 A N D a u t h o r = l _ a u t h o r A N D d a t e _ p u b l i s h e d = l _ d a t e _ p u b l i s h e d
2 1 A N D p a g e _ c o u n t = l _ p a g e _ c o u n t ;
2 2
2 3 C U R S O R c o p i e s M a t c h C u r I S
2 4 S E L E C T C O U N T ( * ) F R O M b o o k _ c o p i e s
2 5 W H E R E i s b n = l _ i s b n A N D b a r c o d e _ i d = l _ b a r c o d e _ i d ;
2 6
2 7 h o w _ m a n y N U M B E R ;
2 8 l _ s q l c o d e N U M B E R ;
P o n i |e j z n a j d u j e s i ¹ k i l k a w y j a [n i e D d o t y c z c y c h p r z e d s t a w i o n e g o f r a g m e n t u k o d u .
L i n i e 2 . 9 . S t o d e k l a r a c j e z m i e n n y c h l o k a l n y c h , k t ó r e r e p r e z e n t u j w a r t o [c i u |y w a n e w r ó |n y c h
t e s t a c h . P r z e c h o w y w a n i e t y c h w a r t o [c i w z m i e n n y c h u Ba t w i a p r o g r a m o w a n i e z u w a g i n a m o |l i -
w o [ i c h w i e l o k r o t n e g o u |y c i a . P r z e d r o s t e k l _ o z n a c z a , |e s t o z m i e n n e l o k a l n e .
L i n i e 1 1 . 1 2 . J e s t t o d e k l a r a c j a p i e r w s z e g o z k u r s o r ó w p r o g r a m u . K u r s o r u m o |l i w i a p o b i e r a n i e
w a r t o [c i z b a z y d a n y c h z a p o m o c i n s t r u k c j i j ¹z y k a S Q L S E L E C T . T a k o n k r e t n a i n s t r u k c j a o b l i c z a
c a Bk o w i t l i c z b ¹ r e k o r d ó w w t a b e l i k s i a z k i .
L i n i e 1 4 . 1 5 . J e s t t o r ó w n i e | d e k l a r a c j a k u r s o r a p r o g r a m u u m o |l i w i a o n o b l i c z a n i e c a Bk o w i -
t e j l i c z b y e g z e m p l a r z y k s i |k i .
L i n i e 1 7 . 2 1 . T e n k u r s o r s Bu |y d o o b l i c z a n i a l i c z b y k s i |e k , d l a k t ó r y c h w a r t o [c i k o l u m n o d p o -
w i a d a j w a r t o [c i o m z m i e n n y c h l o k a l n y c h .
L i n i a 2 7 . Z m i e n n a l o k a l n a i l e p r z e c h o w u j e t y m c z a s o w o r e z u l t a t d z i a Ba n i a p o w y |s z y c h z a p y t a D.
L i n i a 2 8 . Z m i e n n a l _ s q l c o d e p r z e c h o w u j e t y m c z a s o w o w a r t o [ w y j [c i o w w e w n ¹t r z n e j f u n k -
c j i P L / S Q L S Q L C O D E . J e j d z i a Ba n i e z o s t a n i e o m ó w i o n e n i e c o d a l e j .
P o n i |e j p r z e d s t a w i o n o s e k c j ¹ w y k o n a w c z o m a w i a n e g o p r o g r a m u . R o z p o c z y n a o n a s w o j e d z i a Ba -
n i e o d u s u n i ¹c i a z a w a r t o [c i o b y d w ó c h t a b e l w b a z i e d a n y c h . W t e n s p o s ó b u z y s k u j e s i ¹ p e w n o [,
|e w s z e l k i e o p e r a c j e z l i c z a n i a b ¹d d o t y c z y j e d y n i e b i e |c y c h d a n y c h t e s t o w y c h , a n i e i n n y c h ,
k t ó r e m o g By p o z o s t a p o w c z e [n i e j s z y c h w y k o n a n i a c h . O c z y w i [c i e , c a Ba t a p r o c e d u r a p o w i n n a d o t y -
c z y p e w n e j t e s t o w e j b a z y d a n y c h , a n i e b a z y p o d s t a w o w e j .
2 9 B E G I N
3 0 D E L E T E b o o k _ c o p i e s ;
3 1 D E L E T E b o o k s ;
3 2
3 3 a d d _ b o o k ( i s b n _ i n = > l _ i s b n , b a r c o d e _ i d _ i n = > l _ b a r c o d e _ i d ,
3 4 t i t l e _ i n = > l _ t i t l e , s u m m a r y _ i n = > l _ s u m m a r y , a u t h o r _ i n = > l _ a u t h o r ,
3 5 d a t e _ p u b l i s h e d _ i n = > l _ d a t e _ p u b l i s h e d , p a g e _ c o u n t _ i n = >
l _ p a g e _ c o u n t ) ;
3 6
3 7 O P E N b o o k M a t c h C u r ;
3 8 F E T C H b o o k M a t c h C u r I N T O h o w _ m a n y ;
3 9 r e p o r t e q b o o l ( ' a d d p r o c e d u r e , b o o k f e t c h m a t c h e s i n s e r t ' ,
4 0 e x p e c t e d _ v a l u e = > T R U E , a c t u a l _ v a l u e = > b o o k M a t c h C u r % F O U N D ) ;
4 1 C L O S E b o o k M a t c h C u r ;
4 2
L i n i e 3 3 . 4 1 . W t y m m i e j s c u n a s t ¹p u j e p i e r w s z e w y w o Ba n i e p r o c e d u r y a d d _ b o o k . W y k o r z y -
s t y w a n e s w s z y s t k i e z d e f i n i o w a n e w c z e [n i e j p a r a m e t r y i o c z e k i w a n e j e s t p o p r a w n e z a k o Dc z e n i e
p r o c e d u r y . W y w o Ba n i e t o r o z p o c z y n a p r o c e s s p r a w d z a j c y , c z y p r o c e d u r a d o d a w a n i a k s i |k i
d z i a Ba p o p r a w n i e . N a s t ¹p u j e t o p r z e z o t w a r c i e k u r s o r a , p o b r a n i e z n i e g o d a n y c h i s p r a w d z e n i e ,
c z y , z g o d n i e z o c z e k i w a n i a m i , r e k o r d z o s t a B u t w o r z o n y . W l i n i a c h 3 9 . 4 0 . z n a j d u j e s i ¹ w y w o Ba -
n i e p r o c e d u r y r e p o r t e q b o o l j e s t t o o d m i a n a p r o c e d u r y r e p o r t e q , k t ó r a w y k o r z y s t u j e
w a r t o [c i l o g i c z n e ( B o o l e a n ) z a m i a s t c i g ó w z n a k ó w . J e [l i p o b r a n i e d a n y c h d o k u r s o r a k o Dc z y s i ¹
p o w o d z e n i e m , w a r t o [c i b o o k M a t c h C u r % F O U N D j e s t T R U E ( w i ¹c e j i n f o r m a c j i n a t e m a t w y k o -
r z y s t a n i a t e j t e c h n i k i z n a j d u j e s i ¹ w r o z d z i a l e 5 . ) . J a k w y n i k a z t r e [c i l i n i i 4 1 . , d o b r y m z w y c z a j e m
j e s t z a m y k a n i e k u r s o r a p o j e g o u |y c i u .
4 3 B E G I N
4 4 a d d _ b o o k ( i s b n _ i n = > N U L L , b a r c o d e _ i d _ i n = > ' f o o ' , t i t l e _ i n = > ' f o o ' ,
4 5 s u m m a r y _ i n = > ' f o o ' , a u t h o r _ i n = > ' f o o ' ,
4 6 d a t e _ p u b l i s h e d _ i n = > S Y S D A T E , p a g e _ c o u n t _ i n = > 0 ) ;
4 7 l _ s q l c o d e : = S Q L C O D E ;
4 8 E X C E P T I O N
4 9 W H E N O T H E R S T H E N
5 0 l _ s q l c o d e : = S Q L C O D E ;
5 1 E N D ;
5 2
5 3 r e p o r t e q ( ' a d d p r o c e d u r e , d e t e c t i o n o f N U L L i n p u t ' ,
5 4 e x p e c t e d _ v a l u e = > ' - 6 5 0 2 ' , a c t u a l _ v a l u e = > T O _ C H A R ( l _ s q l c o d e ) ) ;
5 5
L i n i e 4 3 . 5 4 . T e n f r a g m e n t k o d u s Bu |y d o p r z e p r o w a d z e n i a k o l e j n e g o t e s t u t y m r a z e m n a s t ¹-
p u j e p r ó b a o k r e [l e n i a w a r t o [c i N U L L d l a p a r a m e t r u i s b n w c e l u s p r a w d z e n i a p r a w i d Bo w e g o
d z i a Ba n i a d e t e k c j i b B¹d n y c h d a n y c h w e j [c i o w y c h . J e [l i p r o c e d u r a a d d _ b o o k d z i a Ba p o p r a w n i e , p o -
w i n n a p r z e c h w y c i w y j t e k N O _ D A T A _ F O U N D . P r o g r a m i s t a p o w i n i e n z o s t a p o i n f o r m o w a n y o t y m
f a k c i e , a z a t e m t e k s t z o s t a B u m i e s z c z o n y w b l o k u z a g n i e |d |o n y m . W t e n s p o s ó b m o |n a o b s Bu |y
w y j t e k n i e j a k o w k o l e j n e j i n s t r u k c j i z a m i a s t p r z e s k a k i w a d o k o Dc o w e j c z ¹[c i b l o k u g Bó w n e g o
( s e k c j i o b s Bu g i w y j t k ó w ) .
W c e l u z a c h o w a n i a z g o d n o [c i z i n n y m i p r z e p r o w a d z a n y m i t e s t a m i , t u r ó w n i e | t r z e b a p r z e p r o w a -
d z i p o r ó w n a n i e o t r z y m a n e j w a r t o [c i z p e w n w a r t o [c i o c z e k i w a n . P L / S Q L z a w i e r a s p e c j a l n
f u n k c j ¹ w e w n ¹t r z n S Q L C O D E , k t ó r a w y w o Ba n a z p o z i o m u k o d u o b s Bu g i w y j t k u z a w s z e z w r a c a
o k r e [l o n w a r t o [ r ó |n o d z e r a . Z u w a g i n a f a k t , |e w a r t o [ t a m a z o s t a w y k o r z y s t a n a p o z a k o -
d e m o b s Bu g i w y j t k u , w l i n i i 5 0 . n a s t ¹p u j e p r z y p i s a n i e t e j w a r t o [c i z m i e n n e j l _ s q l c o d e , k t ó r a
n a s t ¹p n i e j e s t w y k o r z y s t y w a n a w l i n i a c h 5 3 . i 5 4 . p o d c z a s w y w o Ba n i a p r o c e d u r y r e p o r t e q .
Z l i n i i 5 4 . w y n i k a , |e w a r t o [ o c z e k i w a n a w y n o s i 6 5 0 2 . J e s t t o w a r t o [, k t ó r P L / S Q L p r z y p i -
s u j e S Q L C O D E w s y t u a c j i , g d y p o j a w i a s i ¹ w y j t e k N O _ D A T A _ F O U N D .
5 6 O P E N b o o k C o u n t C u r ;
5 7 F E T C H b o o k C o u n t C u r I N T O h o w _ m a n y ;
5 8 r e p o r t e q ( ' a d d p r o c e d u r e , b o o k _ r e c o r d c o u n t ' , e x p e c t e d _ v a l u e = > ' 1 ' ,
5 9 a c t u a l _ v a l u e = > h o w _ m a n y ) ;
6 0 C L O S E b o o k C o u n t C u r ;
6 1
6 2 O P E N c o p i e s C o u n t C u r ;
6 3 F E T C H c o p i e s C o u n t C u r I N T O h o w _ m a n y ;
6 4 r e p o r t e q ( ' a d d p r o c e d u r e , b o o k _ c o p y r e c o r d c o u n t ' , e x p e c t e d _ v a l u e = > ' 1 ' ,
6 5 a c t u a l _ v a l u e = > h o w _ m a n y ) ;
6 6 C L O S E c o p i e s C o u n t C u r ;
6 7
6 8 O P E N c o p i e s M a t c h C u r ;
6 9 F E T C H c o p i e s M a t c h C u r I N T O h o w _ m a n y ;
7 0 r e p o r t e q b o o l ( ' a d d p r o c e d u r e , b o o k c o p y f e t c h m a t c h e s i n s e r t ' ,
7 1 e x p e c t e d _ v a l u e = > T R U E , a c t u a l _ v a l u e = > c o p i e s M a t c h C u r % F O U N D ) ;
7 2 C L O S E c o p i e s M a t c h C u r ;
7 3
L i n i e 5 6 . 7 2 . K o l e j n e l i n i e k o d u s Bu | d o s p r a w d z e n i a , c z y w t a b e l i z n a j d u j e s i ¹ o c z e k i w a n a l i c z b a
r e k o r d ó w .
7 4 B E G I N
7 5 a d d _ b o o k ( i s b n _ i n = > l _ i s b n , b a r c o d e _ i d _ i n = > l _ b a r c o d e _ i d ,
7 6 t i t l e _ i n = > l _ t i t l e , s u m m a r y _ i n = > l _ s u m m a r y , a u t h o r _ i n = >
l _ a u t h o r ,
7 7 d a t e _ p u b l i s h e d _ i n = > l _ d a t e _ p u b l i s h e d ,
7 8 p a g e _ c o u n t _ i n = > l _ p a g e _ c o u n t ) ;
7 9 l _ s q l c o d e : = S Q L C O D E ;
8 0 E X C E P T I O N
8 1 W H E N O T H E R S T H E N
8 2 l _ s q l c o d e : = S Q L C O D E ;
8 3 E N D ;
8 4 r e p o r t e q ( ' a d d p r o c e d u r e , d e t e c t i o n o f d u p l i c a t e i s b n ' ,
8 5 e x p e c t e d _ v a l u e = > ' - 1 ' , a c t u a l _ v a l u e = > l _ s q l c o d e ) ;
8 6 E N D ;
8 7 /
L i n i e 7 4 . 8 5 . K o l e j n y t e s t , u w z g l ¹d n i o n y w o m a w i a n y m p r o g r a m i e , p o l e g a n a s p r a w d z e n i u , c z y
p r ó b a w p r o w a d z e n i a d r u g i r a z t e j s a m e j w a r t o [c i i s b n s p o w o d u j e p r z e c h w y c e n i e w y j t k u . S y s -
t e m O r a c l e p o w i n i e n w t a k i e j s y t u a c j i u s t a w i w a r t o [ S Q L C O D E n a 1 , c o o z n a c z a w Ba [n i e p r ó b ¹
w s t a w i e n i a r e k o r d u o t a k i m s a m y m k l u c z u g Bó w n y m , c o r e k o r d j u | i s t n i e j c y ( w r z e c z y w i s t o [c i j e s t
t o t e s t p o p r a w n o [c i p r o j e k t u b a z y d a n y c h ) .
J e s t t o w z a s a d z i e o s t a t n i p u n k t k o n t r o l n y t e s t u p o p r a w n o [c i p r o c e d u r y a d d _ b o o k . J e |e l i p r z e d
u r u c h o m i e n i e m p r o g r a m u w y k o n a n o k o m e n d ¹ S E R V E R O U T P U T O N ( d o k Ba d n i e j s z y o p i s z n a j d u j e
s i ¹ w r o z d z i a l e 2 . ) , w y w o Ba n i e o m a w i a n e g o p r o g r a m u z p o z i o m u S Q L * P l u s p o w o d u j e w y [w i e t l e -
n i e n a s t ¹p u j c y c h i n f o r m a c j i :
a d d p r o c e d u r e , b o o k f e t c h m a t c h e s i n s e r t : P A S S E D
a d d p r o c e d u r e , d e t e c t i o n o f n u l l i n p u t : P A S S E D
a d d p r o c e d u r e , b o o k r e c o r d c o u n t : P A S S E D
a d d p r o c e d u r e , b o o k _ c o p y r e c o r d c o u n t : P A S S E D
a d d p r o c e d u r e , b o o k _ c o p y f e t c h m a t c h e s i n s e r t : P A S S E D
a d d p r o c e d u r e , d e t e c t i o n o f d u p l i c a t e i s b n : P A S S E D
B y m o |e C z y t e l n i k z a u w a |y B, |e p o w y |s z y k o d s Bu |y j a k o t e s t j e d n o s t k i p r o g r a m o w e j ( u n i t t e s t ) 4 .
M o |e o n t a k |e p o s Bu |y j a k o z a p i s a n y p r z y k Ba d w y w o By w a n i a p r o g r a m u , c o m o |e o k a z a s i ¹ p r z y -
d a t n e w r a z i e z a i s t n i e n i a w t p l i w o [c i d o t y c z c y c h s p o s o b u p r z e p r o w a d z e n i a p o d o b n e j p r o c e d u r y .
P o n i |s z y p r o g r a m s Bu |y d o t e s t o w a n i a p r a c y f u n k c j i b o o k _ c o p y _ q t y . Z a s a d n i c z o s p o s ó b j e g o
d z i a Ba n i a j e s t t a k i s a m , j a k w p r z y p a d k u p o p r z e d n i e g o p r o g r a m u .
1 D E C L A R E
2 l _ i s b n V A R C H A R 2 ( 1 3 ) : = ' 1 - 5 6 5 9 2 - 3 3 5 - 9 ' ;
3 l _ i s b n 2 V A R C H A R 2 ( 1 3 ) : = ' 2 - 5 6 5 9 2 - 3 3 5 - 9 ' ;
4 l _ t i t l e V A R C H A R 2 ( 2 0 0 ) : = ' P r o g r a m o w a n i e w O r a c l e P L / S Q L ' ;
5 l _ s u m m a r y V A R C H A R 2 ( 2 0 0 0 ) : = ' K o m p e n d i u m i n f o r m a c j i o j z y k u P L / S Q L ' | |
6 ' w r a z z p r z y k Ba d a m i i p o r a d a m i n a t e m a t p r o g r a m o w a n i a . ' ;
7 l _ a u t h o r v a r c h a r 2 ( 2 0 0 ) : = ' F e u e r s t e i n , S t e v e n , B i l l P r i b y l ' ;
8 l _ d a t e _ p u b l i s h e d D A T E : = T O _ D A T E ( ' 0 1 - W R Z - 1 9 9 7 ' , ' D D - M O N - Y Y Y Y ' ) ;
9 l _ p a g e _ c o u n t N U M B E R : = 9 8 7 ;
1 0 l _ b a r c o d e _ i d V A R C H A R 2 ( 1 0 0 ) : = ' 1 0 0 0 0 0 0 0 1 ' ;
1 1 l _ b a r c o d e _ i d 2 V A R C H A R 2 ( 1 0 0 ) : = ' 1 0 0 0 0 0 0 0 2 ' ;
1 2 l _ b a r c o d e _ i d 3 V A R C H A R 2 ( 1 0 0 ) : = ' 1 0 0 0 0 0 0 0 3 ' ;
1 3
1 4 h o w _ m a n y N U M B E R ;
1 5 B E G I N
1 6 D E L E T E b o o k _ c o p i e s ;
1 7 D E L E T E b o o k s ;
4
W y r a |e n i e j e d n o s t k a p r o g r a m o w a ( u n i t ) o d n o s i s i ¹ t u d o p o j e d y n c z e j j e d n o s t k i p r o g r a m o w e j
w p r z e c i w i e Ds t w i e d o i n n y c h r o d z a j ó w t e s t ó w , k t ó r e p o z w a l a j u p e w n i s i ¹, c o d o p r a w i d Bo w e j
w s p ó Bp r a c y p o s z c z e g ó l n y c h j e d n o s t e k w r a m a c h c a Be j a p l i k a c j i .
1 8
1 9 r e p o r t e q ( ' b o o k _ c o p y _ q t y f u n c t i o n , z e r o c o u n t ' , ' 0 ' ,
2 0 T O _ C H A R ( b o o k _ c o p y _ q t y ( l _ i s b n ) ) ) ;
2 1
2 2 / * Z a k Ba d a m y , |e p r o c e d u r a a d d _ b o o k d z i a Ba p r a w i d Bo w o * /
2 3 a d d _ b o o k ( i s b n _ i n = > l _ i s b n , b a r c o d e _ i d _ i n = > l _ b a r c o d e _ i d ,
2 4 t i t l e _ i n = > l _ t i t l e , s u m m a r y _ i n = > l _ s u m m a r y , a u t h o r _ i n = > l _ a u t h o r ,
2 5 d a t e _ p u b l i s h e d _ i n = > l _ d a t e _ p u b l i s h e d , p a g e _ c o u n t _ i n = >
l _ p a g e _ c o u n t ) ;
2 6
2 7 r e p o r t e q ( ' b o o k _ c o p y _ q t y f u n c t i o n , u n i t c o u n t ' , ' 1 ' ,
2 8 T O _ C H A R ( b o o k _ c o p y _ q t y ( l _ i s b n ) ) ) ;
2 9
3 0 a d d _ b o o k _ c o p y ( i s b n _ i n = > l _ i s b n , b a r c o d e _ i d _ i n = > l _ b a r c o d e _ i d 2 ) ;
3 1 a d d _ b o o k _ c o p y ( i s b n _ i n = > l _ i s b n , b a r c o d e _ i d _ i n = > l _ b a r c o d e _ i d 3 ) ;
3 2
3 3 r e p o r t e q ( ' b o o k _ c o p y _ q t y f u n c t i o n , m u l t i c o u n t ' , ' 3 ' ,
3 4 T O _ C H A R ( b o o k _ c o p y _ q t y ( l _ i s b n ) ) ) ;
3 5
3 6 r e p o r t e q ( ' b o o k _ c o p y _ q t y f u n c t i o n , n u l l I S B N ' , ' 0 ' ,
3 7 T O _ C H A R ( b o o k _ c o p y _ q t y ( N U L L ) ) ) ;
3 8 E N D ;
3 9 /
L i n i e 3 0 . 3 1 . T e n f r a g m e n t k o d u z a w i e r a w y w o Ba n i a p r o c e d u r y , k t ó r a j e s z c z e n i e z o s t a Ba C z y -
t e l n i k o w i p r z e d s t a w i o n a . P r o c e d u r a t a s Bu |y d o w s t a w i e n i a r e k o r d u d o t a b e l i b o o k _ c o p i e s .
J e |e l i u r u c h o m i e n i e j e d n o s t k i t e s t o w e j p o w o d u j e w y [w i e t l e n i e w y n i k ó w p o k a z a n y c h p o n i |e j ( p r z y
z a Bo |e n i u , |e p r z e d u r u c h o m i e n i e m p r o g r a m u w y k o n a n o p o l e c e n i e S E R V E R O U T P U T O N ) , o z n a -
c z a t o p r a w i d Bo w e d z i a Ba n i e f u n k c j i b o o k _ c o p y _ q t y :
b o o k _ c o p y _ q t y f u n c t i o n , z e r o c o u n t : P A S S E D
b o o k _ c o p y _ q t y f u n c t i o n , u n i t c o u n t : P A S S E D
b o o k _ c o p y _ q t y f u n c t i o n , m u l t i c o u n t : P A S S E D
b o o k _ c o p y _ q t y f u n c t i o n , n u l l I S B N : P A S S E D
B y m o |e C z y t e l n i k s i ¹ z a s t a n a w i a n a d z a s a d n o [c i t w o r z e n i a t a k i e j i l o [c i d o d a t k o w e g o k o d u . B y
m o |e p o p r o s t u w y s t a r c z y Bo b y p r z e g l d a n i e p r o g r a m u w c e l u w y s z u k a n i a e w e n t u a l n y c h b B¹d ó w .
T a k i e s p r a w d z a n i e k o d u j e s t s p o s o b e m p o s t ¹p o w a n i a p r z e c i ¹t n e g o p r o g r a m i s t y . I s t o t ¹ p r o b l e m u
n a j l e p i e j o d d a j e s p r a w d z e n i e w a r t o [c i N U L L , w y k o n y w a n e w l i n i a c h 4 0 . 4 1 . o m a w i a n e g o p r o -
g r a m u s p r a w d z a j c e g o . C o p r a w d a , o s t a t e c z n y t e s t w e r s j i p r o c e d u r y a d d _ b o o k p r z e b i e g B p o -
m y [l n i e , j e d n a k p o c z t k o w o A u t o r z y w c a l e n i e b r a l i p o d u w a g ¹ k o n i e c z n o [c i s p r a w d z a n i a w a r t o -
[c i N U L L . D o p i e r o w t r a k c i e p i s a n i a j e d n o s t k i t e s t o w e j o k a z a Bo s i ¹, |e n a l e |y u w z g l ¹d n i c o n a j m n i e j
t r z y p r z y p a d k i w p r o w a d z a n i a d a n y c h w e j [c i o w y c h : o k r e [l e n i e d a n y c h p o p r a w n y c h , n i e p o p r a w n y c h
o r a z u w z g l ¹d n i e n i e t e j p r o b l e m a t y c z n e j w a r t o [c i N U L L . U s t a l e D t y c h d o k o n a n o j e d y n i e d z i ¹k i a n a l i -
z i e m o |l i w y c h d a n y c h w e j [c i o w y c h , k t ó r e n a l e |y u w z g l ¹d n i a p o d c z a s p l a n o w a n i a t e s t ó w . W c z e -
[n i e j s z e p o p r a w n e d z i a Ba n i e p r o g r a m u o k a z a Bo s i ¹ k w e s t i p r z y p a d k u . T e s t o w a n i e i s p o s ó b j e g o
z a p l a n o w a n i a u m o |l i w i a a n a l i z ¹ t w o r z o n e g o k o d u z z u p e Bn i e o d m i e n n e g o p u n k t u w i d z e n i a , c o p o -
z w a l a n a u z y s k a n i e n o w y c h , w a |n y c h i n f o r m a c j i .
C z a s p r z e z n a c z o n y n a t e s t o w a n i e a p l i k a c j i j e s t n i e k i e d y o g r a n i c z a n y z p o w o d ó w f i n a n s o w y c h
l u b w r e z u l t a c i e d e c y z j i k i e r o w n i c t w a f i r m y . C z ¹[c i e j j e d n a k t e s t o w a n i e a p l i k a c j i j e s t p o m i j a n e
p r z e z p r o g r a m i s t ó w , k t ó r z y p o s t r z e g a j t ¹ c z y n n o [ j a k o n u d n l u b n a w e t n i e p o t r z e b n .
B e z w z g l ¹d n i e n a l e |y j e d n a k w y r o b i s o b i e n a w y k t e s t o w a n i a p i s a n y c h p r z e z s i e b i e a p l i k a c j i .
D o t y c h c z a s C z y t e l n i k z a p o z n a B s i ¹ z k o d e m u m o |l i w i a j c y m p r z e p r o w a d z a n i e k i l k u o p e r a c j i z w i -
z a n y c h z o b s Bu g k a t a l o g u . P r z e d s t a w i o n o t a k |e k o d k i l k u n a r z ¹d z i s Bu |c y c h d o t e s t o w a n i a .
P o n i |e j o p i s a n o p e w n e u p r o s z c z e n i a , j a k i e d o t y c h c z a s d o p u s z c z a n o w o b e c o m a w i a n e g o p r o b l e m u .
P r z e d s t a w i o n o t a k |e k i l k a s p o s o b ó w p o k o n a n i a t y c h o g r a n i c z e D.
K o d , k t ó r y z a p r e z e n t o w a n o w e w c z e [n i e j s z y c h p o d r o z d z i a Ba c h , n i e r o z w i z u j e j e s z c z e p e w n y c h
w a |n y c h z a g a d n i e D, t a k i c h j a k :
" M o |l i w o [, |e r e k o r d w s t a w i a n y d o t a b e l i b o o k s j u | i s t n i e j e . T r z e b a s p r a w d z i , c z y j e s t
t o t r a k t o w a n e t a k s a m o , j a k w p r o w a d z e n i e i n f o r m a c j i o n o w y m e g z e m p l a r z u .
" S p o s ó b m o d y f i k o w a n i a d a n y c h w k a t a l o g u .
" S y t u a c j a , w k t ó r e j d a n y r e k o r d k a t a l o g u b i b l i o t e k i z o s t a n i e p r z y p a d k o w o u s u n i ¹t y l u b u t r a c o n y .
T r z e b a p r z e a n a l i z o w a m o |l i w o [c i w y k o r z y s t a n i a P L / S Q L d o p r z e k a z a n i a t e j i n f o r m a c j i
d o s y s t e m u b a z y d a n y c h .
" S y t u a c j a , w k t ó r e j z a i s t n i e j e p o t r z e b a w y k o n a n i a w i e l u r ó |n y c h z a p y t a D, n p . w y s z u k i w a n i e
k s i |e k n a p o d s t a w i e k i l k u r ó |n y c h k r y t e r i ó w .
O c z y w i [c i e , w d a l s z e j c z ¹[c i n i n i e j s z e j k s i |k i z o s t a n p r z e d s t a w i o n e s p o s o b y r o z w i z a n i a w i e l u
z p o w y |s z y c h p r o b l e m ó w . Z a p r e z e n t o w a n e b ¹d o d p o w i e d n i e f r a g m e n t y k o d u i s p o s ó b i c h d o d a -
w a n i a . Z p o w y |s z e g o w y n i k a , |e w y g o d n y m r o z w i z a n i e m b y Bo b y p o s i a d a n i e m e c h a n i z m u p o z w a -
l a j c e g o n a o r g a n i z o w a n i e k o d u w t a k i s p o s ó b , a b y u m o |l i w i j e g o Ba t w i e j s z e r o z w i j a n i e i u t r z y -
m y w a n i e . M e c h a n i z m e m t a k i m s p a k i e t y ( p a c k a g e s ) .
P a k i e t j ¹z y k a P L / S Q L j e s t p e w n y m n a z w a n y m z b i o r e m , k t ó r y m o |e z w i e r a d o w o l n l i c z b ¹ p r o -
c e d u r i f u n k c j i . P a k i e t y m o g t a k |e p r z e c h o w y w a i n n e o b i e k t y , n a p r z y k Ba d w y j t k i , z m i e n n e c z y
d e k l a r a c j e t y p ó w d a n y c h . W t r a k c i e l e k t u r y d a l s z e j c z ¹[c i n i n i e j s z e j k s i |k i C z y t e l n i k p r z e k o n a
s i ¹ o o g r o m n y c h k o r z y [c i a c h , k t ó r e p By n z t y c h d o d a t k o w y c h m o |l i w o [c i . W t y m r o z d z i a l e j e d n a k
z o s t a n i e p r z e d s t a w i o n y t y l k o s p o s ó b w y k o r z y s t a n i a t e o o m e c h a n i z m u d o w s t a w i e n i a j u | u t w o r z o -
n e g o p r o g r a m u d o p a k i e t u .
W p r z y p a d k u i n n y c h j ¹z y k ó w p r o g r a m o w a n i a n a p r z y k Ba d J a v a l u b A d a t a k |e i s t n i e j
k o n s t r u k c j e z w a n e p a k i e t a m i . J e d n a k p a k i e t y w j ¹z y k u P L / S Q L c h a r a k t e r y z u j s p e c y f i c z n e
d e f i n i c j e i z a c h o w a n i a . W a r t o o t y m p a m i ¹t a w p r z y p a d k u z a p o z n a w a n i a s i ¹ z t y m i s t r u k t u r a m i
w i n n y c h j ¹z y k a c h .
Z p o w o d ó w , k t ó r e s t a n s i ¹ n i e d Bu g o o c z y w i s t e , p a k i e t y s k Ba d a j s i ¹ z a z w y c z a j z d w ó c h c z ¹[c i :
s p e c y f i k a c j i ( s p e c i f i c a t i o n ) w s k r ó c i e s p e c o r a z c i a Ba ( b o d y ) .
S p e c y f i k a c j a p a k i e t u z a w i e r a j e d y n i e i n f o r m a c j e o j e g o m o |l i w o [c i a c h ( p r z e z n a c z e n i u ) , a l e n i e m a
t u |a d n y c h w i a d o m o [c i o s p o s o b i e j e g o w y k o n a n i a . S p e c y f i k a c j a z a w i e r a j e d y n i e n a g Bó w k i j e d n o s t e k
p r o g r a m o w y c h , a n i e k o d w y k o n y w a l n y . J e s t t o r o d z a j s e k c j i d e k l a r a c y j n e j , w y s t ¹p u j c e j w j e d -
n o s t k a c h p r o g r a m o w y c h . U p r o s z c z o n y w z o r z e c s k Ba d n i d e f i n i c j i p a k i e t u p r z e d s t a w i o n o p o n i |e j :
C R E A T E O R R E P L A C E P A C K A G E n a z w a _ p a k i e t u
A S
n a g Bó w e k _ p r o g r a m u 1 ;
n a g Bó w e k _ p r o g r a m u 2 ;
n a g Bó w e k _ p r o g r a m u 3 ;
E N D n a z w a _ p a k i e t u ;
/
n a z w a _ p a k i e t u j e s t o p i s o w n a z w , j a k u |y t k o w n i k n a d a j e d a n e m u p a k i e t o w i ( n a z w a t a p o d l e -
g a z a s a d o m n a d a w a n i a n a z w o b o w i z u j c y m w j ¹z y k u P L / S Q L ) .
P o n i |e j p r z e d s t a w i o n o s p o s ó b u t w o r z e n i a p a k i e t u , s Bu |c e g o d o z a r z d z a n i a k s i |k a m i w b a z i e
d a n y c h . P i e r w s z y m p r o b l e m e m j e s t n a d a n i e o d p o w i e d n i e j n a z w y . C z ¹[ p r o g r a m i s t ó w u w a |a , |e
t a k i r o d z a j p a k i e t u p e Bn i r o l ¹ z a r z d c y ( m a n a g e r ) i d l a t e g o z a s t o s o w a n p r z e z n i c h n a z w b y Bo b y
b o o k _ m g r l u b b o o k _ m a n . I n n i r a c z e j p o d k r e [l a j r o d z a j o b i e k t u i u |y l i b y n a z w y b o o k _ p k t .
A u t o r z y p r e f e r u j j e d n a k n a z w y k r ó t k i e i p r o s t e a z a t e m w y b r a l i p r o s t n a z w ¹ b o o k 5 .
P o n i |e j p r z e d s t a w i o n o p r z y k Ba d o w s p e c y f i k a c j ¹ p a k i e t u :
C R E A T E O R R E P L A C E P A C K A G E b o o k
A S
P R O C E D U R E a d d ( i s b n _ i n I N V A R C H A R 2 , t i t l e _ i n I N V A R C H A R 2 ,
a u t h o r _ i n I N V A R C H A R 2 , p a g e _ c o u n t _ i n I N N U M B E R ,
s u m m a r y _ i n I N V A R C H A R 2 D E F A U L T N U L L ,
d a t e _ p u b l i s h e d _ i n I N D A T E D E F A U L T N U L L ,
b a r c o d e _ i d _ i n I N V A R C H A R 2 D E F A U L T N U L L ) ;
P R O C E D U R E a d d _ c o p y ( i s b n _ i n I N V A R C H A R 2 , b a r c o d e _ i d _ i n I N V A R C H A R 2 ) ;
F U N C T I O N b o o k _ c o p y _ q t y ( i s b n _ i n I N V A R C H A R 2 )
R E T U R N N U M B E R ;
P R O C E D U R E c h a n g e ( i s b n _ i n I N V A R C H A R 2 , n e w _ t i t l e I N V A R C H A R 2 ,
n e w _ a u t h o r I N V A R C H A R 2 , n e w _ p a g e _ c o u n t I N N U M B E R ,
n e w _ s u m m a r y I N V A R C H A R 2 D E F A U L T N U L L ,
n e w _ d a t e _ p u b l i s h e d I N D A T E D E F A U L T N U L L ) ;
5
W y w o By w a n i e p r o g r a m ó w u m i e s z c z o n y c h w p a k i e t a c h o d b y w a s i ¹ w n a s t ¹p u j c y s p o s ó b : n a z w a _ p a k i e t u .
n a z w a _ p r o g r a m u s t d m o |l i w e o k a z u j e s i ¹ u |y w a n i e z w i ¹z By c h , l e c z z r o z u m i a By c h w y w o Ba D w r o d z a j u
b o o k . a d d ( . . . ) .
P R O C E D U R E r e m o v e _ c o p y ( b a r c o d e _ i d _ i n I N V A R C H A R 2 ) ;
P R O C E D U R E w e e d ( i s b n _ i n I N V A R C H A R 2 ) ;
E N D b o o k ;
/
W w i ¹k s z o [c i p r z y p a d k ó w ( t a k |e w p o w y |s z y m ) n i e m a p o t r z e b y u m i e s z c z a n i a w s p e c y f i k a c j i p a -
k i e t u p r o c e d u r i f u n k c j i w o k r e [l o n y m p o r z d k u .
W a r t o z a u w a |y , |e i n s t r u k c j a d e f i n i c j i s p e c y f i k a c j i p a k i e t u r o z p o c z y n a s i ¹ o d w y r a |e n i a C R E A T E
O R R E P L A C E , z a [ p o s z c z e g ó l n e p r o g r a m y w n a g Bó w k u m a j p o s t a :
F U N C T I O N n a z w a . . .
l u b :
P R O C E D U R E n a z w a . . .
J e s t t o s p o w o d o w a n e f a k t e m , |e w p r z y p a d k u j ¹z y k a P L / S Q L c a By k o d p o j e d y n c z e g o p a k i e t u j e s t
t w o r z o n y , u a k t u a l n i a m y l u b u s u w a n y j e d n o c z e [n i e , t a k w i ¹c s e n s o w n e j e s t t y l k o z a s t o s o w a n i e j e d -
n e j i n s t r u k c j i C R E A T E .
Z p o w y |s z e g o w y n i k a , |e w p l a n a c h r o z w o j u a p l i k a c j i u w z g l ¹d n i o n o d o d a n i e k i l k u b r a k u j c y c h f u n k -
c j i ( j e d n a k |e m e t o d y n i e z b ¹d n e d o p o b i e r a n i a d a n y c h z b a z y d a n y c h n i e z o s t a n n a r a z i e u t w o r z o n e ) .
S p e c y f i k a c j a p a k i e t u p e Bn i r o l ¹ i n t e r f e j s u p r o g r a m o w a n i a a p l i k a c j i ( a p p l i c a t i o n p r o g r a m m i n g
i n t e r f a c e , A P I ) w o d n i e s i e n i u d o p a k i e t u . N a z w a t a j e s t b y m o |e n i e c o n i e [c i s Ba , l e c z o d d a j e i s t o t ¹
i d e i s t o s o w a n i a p a k i e t u . K a |d y A P I s Bu |y b o w i e m j a k o f o r m a k o m u n i k a c j i m i ¹d z y u |y t k o w n i k a m i
( n p . m i ¹d z y p i s z c y m i p r o g r a m i w y k o r z y s t u j c y m i g o ) . S e n s t a k i e g o p o s t ¹p o w a n i a p o l e g a n a u k r y -
c i u n i e j e d n o k r o t n i e b a r d z o s k o m p l i k o w a n y c h r o z w i z a D p r o g r a m i s t y c z n y c h z a i c h p r o s t p r e z e n t a c j .
C i a Bo p a k i e t u z a w i e r a e l e m e n t y s t r u k t u r a l n e j e d n o s t e k p r o g r a m o w y c h , c z y l i i n s t r u k c j e w y k o n a w c z e
o d p o w i a d a j c e n a g Bó w k o m p o d a n y m w s p e c y f i k a c j i p a k i e t u . U p r o s z c z o n y w z o r z e c s k Ba d n i o w y
c i a Ba p a k i e t u z n a j d u j e s i ¹ p o n i |e j :
C R E A T E O R R E P L A C E P A C K A G E B O D Y n a z w a _ p a k i e t u
A S
p r o g r a m y _ p r y w a t n e ; / * o p c j o n a l n i e * /
c i a Bo _ p r o g r a m u 1 ;
c i a Bo _ p r o g r a m u 2 ;
c i a Bo _ p r o g r a m u 3 ;
E N D n a z w a _ p a k i e t u ;
/
I n n y m i s Bo w y , c i a Bo p a k i e t u j e s t t l o k a l i z a c j , g d z i e s i ¹ u m i e s z c z a i m p l e m e n t a c j e p r o g r a m ó w w y -
m i e n i o n y c h w s p e c y f i k a c j i .
N i e m a l z a w s z e c i a Bo p a k i e t u t w o r z y s i ¹ p o z d e f i n i o w a n i u j e g o s p e c y f i k a c j i . K o m p i l a t o r s p r a w d z a ,
z k t ó r s p e c y f i k a c j j e s t z w i z a n e d a n e c i a Bo p o p r z e z s p r a w d z e n i e j e g o n a z w y , k t ó r a m u s i b y i d e n -
t y c z n a z w y m i e n i o n w s p e c y f i k a c j i . P o n a d t o c i a Bo p a k i e t u m u s i z a w i e r a d e f i n i c j e w s z y s t k i c h
p r o g r a m ó w , j a k i e z o s t a By w y m i e n i o n e w s p e c y f i k a c j i w p r z e c i w n y m w y p a d k u k o m p i l a c j a s i ¹
n i e p o w i e d z i e . J e d n a k |e w a r t o z a u w a |y , |e z a s a d a t a n i e d z i a Ba o d w r o t n i e c i a Bo p a k i e t u m o |e
z a w i e r a p e w n e d o d a t k o w e p r o g r a m y , k t ó r y c h n i e w y m i e n i o n o w s p e c y f i k a c j i p a k i e t u . N a p r z e d -
s t a w i o n y m p o w y |e j w z o r c u o p i s a n o j e j a k o p r o g r a m y _ p r y w a t n e .
K o d c i a Ba p a k i e t u b o o k z a w i e r a j e d n p r o c e d u r ¹ p r y w a t n ( p r i v a t e ) :
C R E A T E O R R E P L A C E P A C K A G E B O D Y b o o k
A S
/ * " p r y w a t n a " p r o c e d u r a u |y w a n a t y l k o w c i e l e t e g o p a k i e t u * /
P R O C E D U R E a s s e r t _ n o t n u l l ( t e s t e d _ v a r i a b l e I N V A R C H A R 2 )
I S
B E G I N
I F t e s t e d _ v a r i a b l e I S N U L L
T H E N
R A I S E V A L U E _ E R R O R ;
E N D I F ;
E N D a s s e r t _ n o t n u l l ;
F U N C T I O N b o o k _ c o p y _ q t y ( i s b n _ i n I N V A R C H A R 2 )
R E T U R N N U M B E R
A S
n u m b e r _ o _ c o p i e s N U M B E R : = 0 ;
C U R S O R b c _ c u r I S
S E L E C T C O U N T ( * )
F R O M b o o k _ c o p i e s
W H E R E i s b n = i s b n _ i n ;
B E G I N
I F i s b n _ i n I S N O T N U L L
T H E N
O P E N b c _ c u r ;
F E T C H b c _ c u r I N T O n u m b e r _ o _ c o p i e s ;
C L O S E b c _ c u r ;
E N D I F ;
R E T U R N n u m b e r _ o _ c o p i e s ;
E N D ;
P R O C E D U R E a d d ( i s b n _ i n I N V A R C H A R 2 , t i t l e _ i n I N V A R C H A R 2 ,
a u t h o r _ i n I N V A R C H A R 2 , p a g e _ c o u n t _ i n I N N U M B E R ,
s u m m a r y _ i n I N V A R C H A R 2 , d a t e _ p u b l i s h e d _ i n I N D A T E ,
b a r c o d e _ i d _ i n I N V A R C H A R 2 )
I S
B E G I N
a s s e r t _ n o t n u l l ( i s b n _ i n ) ;
I N S E R T I N T O b o o k s ( i s b n , t i t l e , s u m m a r y , a u t h o r , d a t e _ p u b l i s h e d ,
p a g e _ c o u n t )
V A L U E S ( i s b n _ i n , t i t l e _ i n , s u m m a r y _ i n , a u t h o r _ i n , d a t e _ p u b l i s h e d _ i n ,
p a g e _ c o u n t _ i n ) ;
I F b a r c o d e _ i d _ i n I S N O T N U L L
T H E N
a d d _ c o p y ( i s b n _ i n , b a r c o d e _ i d _ i n ) ;
E N D I F ;
E N D a d d ;
P R O C E D U R E a d d _ c o p y ( i s b n _ i n I N V A R C H A R 2 , b a r c o d e _ i d _ i n I N V A R C H A R 2 )
I S
B E G I N
a s s e r t _ n o t n u l l ( i s b n _ i n ) ;
a s s e r t _ n o t n u l l ( b a r c o d e _ i d _ i n ) ;
I N S E R T I N T O b o o k _ c o p i e s ( i s b n , b a r c o d e _ i d )
V A L U E S ( i s b n _ i n , b a r c o d e _ i d _ i n ) ;
E X C E P T I O N
W H E N D U P _ V A L _ O N _ I N D E X
T H E N
N U L L ;
E N D ;
P R O C E D U R E c h a n g e ( i s b n _ i n I N V A R C H A R 2 , n e w _ t i t l e I N V A R C H A R 2 ,
n e w _ a u t h o r I N V A R C H A R 2 , n e w _ p a g e _ c o u n t I N N U M B E R ,
n e w _ s u m m a r y I N V A R C H A R 2 D E F A U L T N U L L ,
n e w _ d a t e _ p u b l i s h e d I N D A T E D E F A U L T N U L L )
I S
B E G I N
a s s e r t _ n o t n u l l ( i s b n _ i n ) ;
U P D A T E b o o k s
S E T t i t l e = n e w _ t i t l e , a u t h o r = n e w _ a u t h o r , p a g e _ c o u n t =
n e w _ p a g e _ c o u n t ,
s u m m a r y = n e w _ s u m m a r y , d a t e _ p u b l i s h e d = n e w _ d a t e _ p u b l i s h e d
W H E R E i s b n = i s b n _ i n ;
I F S Q L % R O W C O U N T = 0
T H E N
R A I S E N O _ D A T A _ F O U N D ;
E N D I F ;
E N D c h a n g e ;
P R O C E D U R E r e m o v e _ c o p y ( b a r c o d e _ i d _ i n I N V A R C H A R 2 )
I S
B E G I N
a s s e r t _ n o t n u l l ( b a r c o d e _ i d _ i n ) ;
D E L E T E b o o k _ c o p i e s
W H E R E b a r c o d e _ i d = b a r c o d e _ i d _ i n ;
E N D r e m o v e _ c o p y ;
P R O C E D U R E w e e d ( i s b n _ i n I N V A R C H A R 2 )
I S
B E G I N
a s s e r t _ n o t n u l l ( i s b n _ i n ) ;
D E L E T E b o o k _ c o p i e s W H E R E i s b n = i s b n _ i n ;
D E L E T E b o o k s W H E R E i s b n = i s b n _ i n ;
I F S Q L % R O W C O U N T = 0
T H E N
R A I S E N O _ D A T A _ F O U N D ;
E N D I F ;
E N D w e e d ;
E N D b o o k ;
/
W p o w y |s z y m , d o [ d Bu g i m p r z y k Ba d z i e z n a j d u j e s i ¹ k i l k a d o t d n i e o m ó w i o n y c h k o n s t r u k c j i , p r z y -
k Ba d o w o , k o n s t r u k c j a S Q L % R O W C O U N T . Z o s t a n o n e j e d n a k o m ó w i o n e w d a l s z y c h r o z d z i a Ba c h .
W i ¹k s z o [ p r o g r a m i s t ó w u m i e s z c z a p r o g r a m y w c i e l e p a k i e t u w t a k i e j s a m e j k o l e j n o [c i , j a k w p r z y -
p a d k u s p e c y f i k a c j i ( p r o g r a m y p r y w a t n e u w z g l ¹d n i a s i ¹ n a p o c z t k u , g d y | z e w z g l ¹d u n a w y m a g a n i a
k o m p i l a t o r a i c h d e f i n i c j a m u s i s i ¹ z n a j d o w a p r z e d e w e n t u a l n y m w y w o Ba n i e m ) . W r a z i e n i e z d e f i -
n i o w a n i a k t ó r e j [ z j e d n o s t e k p r o g r a m o w y c h , w y m i e n i o n y c h w s p e c y f i k a c j i , k o m p i l a t o r n i e p r z e -
p r o w a d z i k o m p i l a c j i , d o p ó k i b Bd t e n n i e z o s t a n i e n a p r a w i o n y .
p r o g r a m y _ p r y w a t n e s p r y w a t n e w s e n s i e d o s t ¹p n o [c i j e d y n i e z p o z i o m u p a k i e t u . J e g o u |y t -
k o w n i c y n i e m o g b e z p o [r e d n i o w y w o By w a |a d n e g o z p r o g r a m ó w p r y w a t n y c h . P o z w a l a t o n a
k o n s t r u o w a n i e n a r z ¹d z i o s p e c j a l n y m p r z e z n a c z e n i u , k t ó r e b ¹d d o s t ¹p n e t y l k o d l a i n n y c h p r o -
g r a m ó w , z d e f i n i o w a n y c h w r a m a c h p a k i e t u . W p o d a n y m w y |e j p r z y k Ba d z i e d o d a n o t y l k o j e d n ,
p r o s t p r o c e d u r ¹ a s s e r t _ n o t n u l l , k t ó r a p o z w a l a n a n i e p o w t a r z a n i e k i l k u l i n i i k o d u w k a |d e j
d e f i n i o w a n e j p r o c e d u r z e . U |y w a n i e t a k i c h l o k a l n y c h p r o g r a m ó w c z ¹s t o j e s t b a r d z o w y g o d n e .
N a j c z ¹[c i e j s p e Bn i a j o n e n a s t ¹p u j c e z a d a n i a :
" s Bu | j a k o d o d a t k o w e m e t o d y , w y k o r z y s t y w a n e p r z e z i n n e p r o g r a m y z a w a r t e w p a k i e c i e ;
" p o z w a l a j n a u n i k n i ¹c i e p o w t a r z a n i a t e g o s a m e g o k o d u ;
" s d o b r m e t o d p r z e c h o w y w a n i a l u b z m i e n i a n i a w a r t o [c i p e w n e j z m i e n n e j w e w n ¹t r z n e j .
Z k o l e i p r o g r a m y , k t ó r e s w y m i e n i o n e w s p e c y f i k a c j i p a k i e t u , m o g b y w y w o By w a n e w d o w o l -
n y s p o s ó b i n a z y w a s i ¹ j e p r o g r a m a m i p u b l i c z n y m i ( p u b l i c ) . R y s u n e k 3 . 7 p r z e d s t a w i a g r a f i c z n
r e p r e z e n t a c j ¹ p o r ó w n a n i a p r o g r a m ó w p u b l i c z n y c h z p r y w a t n y m i .
R y s u n e k 3 . 7 . P a k i e t y u d o s t p n i a j i n t e r f e j s p u b l i c z n y u k r y w a j c y w e w n t r z n i m p l e m e n t a c j
W i e l u p r o g r a m i s t ó w n i e d o s t r z e g a w a |n o [c i z a g a d n i e D z w i z a n y c h z w y k o r z y s t a n i e m p r o g r a m ó w
p u b l i c z n y c h i p r y w a t n y c h , m i m o |e j e s t t o j e d n a z t e c h n i k p o z w a l a j c y c h n a t w o r z e n i e t r w a Be g o ,
z r o z u m i a Be g o i Ba t w e g o d o p o n o w n e g o w y k o r z y s t a n i a k o d u . I n f o r m a t y c y , k t ó r z y w s z y s t k i e m u n a -
d a j p e w n e f o r m a l n e n a z w y , p o w i e d z i e l i b y , |e o z n a c z a t o t w o r z e n i e a b s t r a k c j i ( a b s t r a c t i o n ) k s i |k i
p o p r z e z u k r y w a n i e i n f o r m a c j i ( i n f o r m a t i o n h i d i n g ) p a t r z : s Bo w n i c z e k .
P o n i |e j w y m i e n i o n o n a j i s t o t n i e j s z e k o r z y [c i w y n i k a j c e z w y k o r z y s t y w a n i a p a k i e t ó w :
O r g a n i z a c j a
W i ¹k s z o [ l u d z i d o c e n i a d o b r e z o r g a n i z o w a n i e d z i a Ba n i a . G r u p o w a n i e p o w i z a n y c h z e s o b
j e d n o s t e k p r o g r a m o w y c h w p a k i e t y p o z w a l a n a t w o r z e n i e k o d u z o r g a n i z o w a n e g o w w y g o d n e
d o s t o s o w a n i a s t r u k t u r y . U |y w a j c t e r m i n o l o g i i f a c h o w e j m o |n a p o w i e d z i e , |e p a k i e t y p o z w a l a j
n a u |y c i e m e c h a n i z m ó w a b s t r a k c j i , e n k a p s u l a c j i o r a z u k r y w a n i a i n f o r m a c j i .
Z r o z u m i a Bo [
P a k i e t y w o g r o m n y m s t o p n i u u Ba t w i a j z a r z d z a n i e d u | l i c z b j e d n o s t e k p r o g r a m o w y c h .
P e w n e b a d a n i a z d z i e d z i n y p s y c h o l o g i i d o w i o d By , |e c z Bo w i e k w j e d n y m c z a s i e m o |e z a j m o w a
s i ¹ j e d y n i e o k o Bo s i e d m i o m a z a g a d n i e n i a m i . O c z y w i [c i e , n i e z a w s z e m o |n a o g r a n i c z y l i c z b ¹
k o m p o n e n t ó w p a k i e t u d o t a k i e j l i c z b y , a l e i c h g r u p o w a n i e z p e w n o [c i u Ba t w i a p r a c ¹.
M o |l i w o [c i p r o j e k t o w e
R o z w i z a n i e s k o m p l i k o w a n e g o p r o b l e m u o d b y w a s i ¹ z a z w y c z a j n a d r o d z e r o z b i c i a g o
n a m n i e j s z e s k Ba d o w e . D w a n a j p o p u l a r n i e j s z e , z u p e Bn i e o d s i e b i e r ó |n e , s p o s o b y r o z w i z y w a n i a
t e g o p r o b l e m u ( c z y l i d e k o m p o z y c j i ) t o p o d e j [c i e f u n k c j o n a l n e ( f u n c t i o n a l ) o r a z o b i e k t o w e
( o b j e c t - b a s e d ) . Z a s t o s o w a n i e p a k i e t ó w w s p o m a g a o b y d w i e t e t e c h n i k i p r o j e k t o w e .
W y d a j n o [
P o d c z a s p i e r w s z e g o w d a n e j s e s j i u r u c h o m i e n i a p r o g r a m u z a p i s a n e g o w p a k i e c i e s y s t e m O r a c l e
w c z y t u j e d o p a m i ¹c i c a B z a w a r t o [ p a k i e t u , a n i e t y l k o p r o g r a m w Ba [n i e w y w o Ba n y . P o z w a l a
t o n a z n a c z c e z w i ¹k s z e n i e w y d a j n o [c i w y w o Ba n i a i n n y c h p r o g r a m ó w p a k i e t u , g d y | n i e b ¹d z i e
k o n i e c z n e k o r z y s t a n i e z d a n y c h z a p i s a n y c h n a w o l n i e j s z y m d y s k u t w a r d y m . Z p o w y |s z e g o
j e d n o c z e [n i e w y n i k a , |e w p a k i e c i e w a r t o p r z e c h o w y w a t y l k o t e k o m p o n e n t y , k t ó r e s
z e s o b z w i z a n e .
W y g o d a p r a c y s e s y j n e j
C z a s e m j e s t p r z y d a t n a m o |l i w o [ p r z e c h o w y w a n i a w p a m i ¹c i p e w n y c h t y m c z a s o w y c h l u b
s t a By c h w a r t o [c i w t r a k c i e t r w a n i a s e s j i ( p r z y j ¹t o , |e s e s j n a z y w a s i ¹ o k r e s z a l o g o w a n i a
u |y t k o w n i k a w s y s t e m i e b a z y d a n y c h ) . D z i ¹k i w y k o r z y s t a n i u p a k i e t ó w w a r t o [c i t a k i e m o |n a
p r z e c h o w y w a w g l o b a l n y c h l u b l o k a l n y c h z m i e n n y c h . T r z e b a j e d n a k p a m i ¹t a , |e c e c h a t a
s t a j e d u |o m n i e j p r z y d a t n a w p r z y p a d k u a p l i k a c j i d z i a Ba j c y c h w s i e c i I n t e r n e t . A p l i k a c j e t e
z a z w y c z a j n i e s z a l e |n e o d s e s j i w i ¹c e j i n f o r m a c j i d o t y c z c y c h t e g o t e m a t u z n a j d u j e s i ¹
w r o z d z i a l e 4 . B e z z a s t o s o w a n i a p a k i e t ó w w a r t o [c i t a k i e m u s i a By b y b y p r z e c h o w y w a n e
w s a m e j b a z i e d a n y c h , c o m i a Bo b y n i e k o r z y s t n y w p By w n a w y d a j n o [ s y s t e m u . P r o b l e m a t y c z n e
t e | s t a Bo b y s i ¹ o d w o By w a n i e s i ¹ d o p e w n e j w a r t o [c i p o w y c o f a n i u t r a n s a k c j i .
S z c z e g ó l n e c e c h y P L / S Q L
J e d n z n a j c i e k a w s z y c h m o |l i w o [c i u z y s k i w a n y c h d z i ¹k i w y k o r z y s t a n i u p a k i e t ó w j e s t
m o |l i w o [ t w o r z e n i a w i e l u j e d n o s t e k p r o g r a m o w y c h o t a k i e j s a m e j n a z w i e . P o z w a l a t o
n a w y w o By w a n i e j e d n e g o p r o g r a m u , k t ó r y m o |e o b s Bu g i w a d a n e w e j [c i o w e o r ó |n y c h t y p a c h .
Z a s t o s o w a n i e t e j t e c h n i k i , z w a n e j p r z e c i |a n i e m ( o v e r l o a d i n g ) i n i e d o s t ¹p n e j d l a p r o g r a m ó w
n a p i s a n y c h b e z u |y c i a p a k i e t ó w , p o z w a l a n a u c z y n i e n i e p r o g r a m u p o z o r n i e b a r d z i e j o g ó l n y m .
P r z y k Ba d o w o , f u n k c j a T O _ C H A R s y s t e m u O r a c l e j e s t p r z e c i |a n a w c e l u u m o |l i w i e n i a
p r z y j m o w a n i a p a r a m e t r ó w o r ó |n y m t y p i e d a n y c h , n a p r z y k Ba d N U M B E R l u b D A T E . O p i s
t e c h n i k i p r z e c i |a n i a o r a z p r z y k Ba d o w y p r o g r a m z n a j d u j s i ¹ w k o Dc o w e j c z ¹[c i n i n i e j s z e g o
r o z d z i a Bu , w p o d r o z d z i a l e U p r o s z c z e n i e p o p r z e z p r z e c i |e n i e .
M n i e j s z e p r o b l e m y z r e k o m p i l a c j
W d u |y c h s y s t e m a c h s k Ba d a j c y c h s i ¹ z d z i e s i t k ó w l u b s e t e k p r o g r a m ó w d u |y m p r o b l e m e m
j e s t z a z w y c z a j r e k o m p i l o w a n i e c z ¹[c i s k Ba d o w y c h p r o g r a m u p o d o k o n a n i u p e w n y c h z m i a n .
D z i ¹k i p a k i e t o m m o |n a u n i k n w i e l u t r u d n o [c i d z i ¹k i t e m u , |e m o |n a r e k o m p i l o w a z a w a r t o [
c i a Ba p a k i e t u b e z k o n i e c z n o [c i r e k o m p i l a c j i p r o g r a m ó w , k t ó r e w y k o r z y s t u j z m o d y f i k o w a n y
p r o g r a m . W p r z y p a d k u z m i a n y s p e c y f i k a c j i p a k i e t u t r z e b a j u | j e d n a k p o n o w n i e s k o m p i l o w a
k a |d y p r o g r a m u w z g l ¹d n i o n y w p a k i e c i e , a l e c z ¹s t o s y s t e m O r a c l e r o b i t o a u t o m a t y c z n i e .
U s u w a n i e p r o g r a m ó w m a g a z y n o w a n y c h
W a r t o z w r ó c i u w a g , |e k o d p r o c e d u r y a d d _ b o o k w p r o w a d z o n y d o p a k i e t u n i e r ó |n i s i
o d p r o c e d u r y o r y g i n a l n e j p o z a z m i e n i o n n a z w d o d a j , g d y | b d z i e o n a s t o s o w a n a t y l k o
w k o n t e k [c i e p a k i e t u b o o k .
O r y g i n a l n a p r o c e d u r a a d d _ b o o k w c i | i s t n i e j e , a l e m o |n a j u s u n p o c z [c i d l a t e g o ,
|e d z i k i w y k o r z y s t a n i u p a k i e t u p r o c e d u r a t a j u | n i e j e s t p o t r z e b n a . P o n i |e j z a t e m p o k a z a n o
s p o s ó b u s u w a n i a p r o c e d u r y . O d p o w i e d n i i n s t r u k c j S Q L , k t ó r a w n i e o d w r a c a l n y s p o s ó b
u s u w a p r o c e d u r z b a z y d a n y c h , j e s t i n s t r u k c j a D R O P P R O C E D U R E :
D R O P P R O C E D U R E a d d _ b o o k ;
J e s t t o i n s t r u k c j a S Q L , a n i e P L / S Q L . S t d p o n i |s z y s p o s ó b w y k o n a n i a :
B E G I N
D R O P P R O C E D U R E a d d _ b o o k ; / * n i e z a d z i a Ba w T Y M m i e j s c u * /
E N D ;
s p o w o d u j e b Bd k o m p i l a c j i i w y [w i e t l e n i e k o m u n i k a t u :
d r o p p r o c e d u r e a d d _ b o o k ;
*
B AD w l i n i i 2 :
O R A - 0 6 5 5 0 : l i n i a 2 , k o l u m n a 1 :
P L S - 0 0 1 0 3 : N a p o t k a n o s y m b o l " D R O P " g d y o c z e k i w a n o j e d n e g o z n a s t p u j c y c h :
. . . c i a c h . . .
Z p o w y |s z e g o w y n i k a , |e P L / S Q L r z e c z y w i [c i e n i e j e s t p e Bn y m n a d z b i o r e m j z y k a S Q L .
P o u s u n i c i u p r o c e d u r y n i e j e s t m o |l i w e j e j o d z y s k a n i e b e z p o m o c y a d m i n i s t r a t o r a b a z y d a -
n y c h , k t ó r y m u s i p r z e p r o w a d z i p e w n e d z i a Ba n i a z w i z a n e z o d z y s k i w a n i e m d a n y c h . J e [l i
j e d n a k i s t n i e j e p l i k z a w i e r a j c y k o d zr ó d Bo w y , m o |n a p o p r o s t u u t w o r z y p o n o w n i e d a n
p r o c e d u r .
W r z e c z y w i s t o [c i n i e p o w i n n o s i u s u w a o b i e k t ó w b a z y d a n y c h b e z u p e w n i e n i a s i , |e n i e s
j u | p o t r z e b n e w p r z e c i w n y m w y p a d k u w c z e [n i e j c z y p ó zn i e j s p o w o d u j e t o p r o b l e m y .
D o b r y m z w y c z a j e m j e s t p r z e c h o w y w a n i e s p e c y f i k a c j i o r a z c i a Ba p a k i e t u w d w ó c h o d d z i e l n y c h
p l i k a c h . W t e n s p o s ó b Ba t w o m o |n a p o d d a r e k o m p i l a c j i s a m o c i a Bo p o d o k o n a n i u p e w n y c h
z m i a n . N i e p o t r z e b n e w y k o n a n i e i n s t r u k c j i z a w a r t y c h w s p e c y f i k a c j i p a k i e t u s p r a w i Bo b y , |e
n i e a k t u a l n e s t a By b y s i ¹ p o w i z a n i a i n n y c h p r o g r a m ó w z p a k i e t e m , a z a t e m t a k |e w y m a g a n a
i c h r e k o m p i l a c j a .
J a k s i ¹ o k a z u j e , i s t n i e j e w i e l e p o w o d ó w , d l a k t ó r y c h w a r t o u |y w a p a k i e t ó w . A z a t e m w a r t o p o w r ó -
c i d o z a g a d n i e D z w i z a n y c h z p r o g r a m a m i t e s t u j c y m i i u m i e [c i j e w p a k i e c i e .
P o n i |e j p r z e d s t a w i o n o s p o s ó b u t w o r z e n i a k o l e j n e g o p a k i e t u . Z o r g a n i z o w a n i e p r o c e d u r t e s t o w y c h
w j e d n y m p a k i e c i e s Bu |y m a g Bó w n i e w c e l u u t r z y m a n i a p o r z d k u w k o d z i e . N a t y m e t a p i e z o s t a n
p o m i n i ¹t e k w e s t i e z w i z a n e z w y d a j n o [c i i k i l k o m a i n n y m i z a g a d n i e n i a m i , k t ó r e o m ó w i o n o w c z e -
[n i e j . P a k i e t t e s t u j c y z a p e w n i a w y g o d n y s p o s ó b o b s Bu g i , a j e g o s t r u k t u r a u m o |l i w i a [w i e t n w s p ó B-
p r a c ¹ z e s t r u k t u r p a k i e t u b o o k , k t ó r e g o b u d o w ¹ p r z e d s t a w i o n o w e w c z e [n i e j s z e j c z ¹[c i n i n i e j s z e g o
r o z d z i a Bu .
P o n i |e j z a m i e s z c z o n o s p e c y f i k a c j ¹ o m a w i a n e g o p a k i e t u :
C R E A T E O R R E P L A C E P A C K A G E t e s t _ b o o k A S
P R O C E D U R E r u n ( v e r b o s e I N B O O L E A N D E F A U L T T R U E ) ;
P R O C E D U R E a d d ;
P R O C E D U R E a d d _ c o p y ;
P R O C E D U R E b o o k _ c o p y _ q t y ;
P R O C E D U R E c h a n g e ;
P R O C E D U R E r e m o v e _ c o p y ;
P R O C E D U R E w e e d ;
E N D t e s t _ b o o k ;
/
K a |d a j e d n o s t k a p r o g r a m o w a g Bó w n e g o p a k i e t u b o o k p o s i a d a o d p o w i e d n i k w p a k i e c i e t e s t _ b o o k ,
c h o n i e u w z g l ¹d n i o n o |a d n y c h p a r a m e t r ó w . M o |n a w y w o By w a j e p o j e d y n c z o l u b w y w o Ba o g ó l n
p r o c e d u r ¹ r u n , k t ó r a u r u c h a m i a w s z y s t k i e p o z o s t a Be . P o s i a d a o n a j e d e n o p c j o n a l n y p a r a m e t r l o -
g i c z n y w s k a z u j c y , c z y m a j b y p r e z e n t o w a n e s z c z e g ó Bo w e i n f o r m a c j e d o t y c z c e t e s t ó w . O p r ó c z
t e g o k a |d a p r o c e d u r a z a w i e r a k o d s Bu |c y d o t e s t o w a n i a .
J e [l i w s z y s t k o p r z e b i e g a p r a w i d Bo w o , p r z e p r o w a d z e n i e t e s t u z p o z i o m u S Q L * P l u s w y g l d a n a -
s t ¹p u j c o :
S Q L > S E T S E R V E R O U T P U T O N S I Z E 1 0 0 0 0 0 0
S Q L > e x e c u t e t e s t _ b o o k . r u n
T e s t i n g b o o k p a c k a g e . . .
. . . a d d p r o c e d u r e , d e t e c t i o n o f N U L L i n p u t : P A S S E D
. . . a d d p r o c e d u r e , b o o k _ r e c o r d c o u n t : P A S S E D
. . . a d d p r o c e d u r e , b o o k _ c o p y r e c o r d c o u n t : P A S S E D
. . . a d d p r o c e d u r e , b o o k f e t c h m a t c h e s i n s e r t : P A S S E D
. . . a d d p r o c e d u r e , b o o k c o p y f e t c h m a t c h e s i n s e r t : P A S S E D
. . . a d d p r o c e d u r e , d e t e c t i o n o f d u p l i c a t e i s b n : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , n o m i n a l c a s e , f i r s t b o o k : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , n o m i n a l c a s e , s e c o n d b o o k : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , i g n o r e d u p l i c a t e s : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , b a d i s b n d e t e c t i o n : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , N U L L i s b n d e t e c t i o n : P A S S E D
. . . a d d _ c o p y p r o c e d u r e , N U L L b a r c o d e _ i d d e t e c t i o n : P A S S E D
. . . b o o k _ c o p y _ q t y f u n c t i o n , z e r o c o u n t : P A S S E D
. . . b o o k _ c o p y _ q t y f u n c t i o n , n o n - z e r o c o u n t : P A S S E D
. . . c h a n g e p r o c e d u r e , s i n g l e f i e l d t e s t : P A S S E D
. . . c h a n g e p r o c e d u r e , N U L L b a r c o d e _ i d d e t e c t i o n : P A S S E D
. . . r e m o v e _ c o p y p r o c e d u r e , b o o k c o u n t n o r m a l : P A S S E D
. . . r e m o v e _ c o p y p r o c e d u r e , b o o k c o p y c o u n t n o r m a l : P A S S E D
. . . r e m o v e _ c o p y p r o c e d u r e , s u p e r f l u o u s i n v o c a t i o n : P A S S E D
. . . w e e d p r o c e d u r e , b o o k c o u n t n o r m a l : P A S S E D
. . . w e e d p r o c e d u r e , b o o k c o p y c o u n t n o r m a l : P A S S E D
. . . w e e d p r o c e d u r e , s u p e r f l u o u s i n v o c a t i o n : P A S S E D
b o o k p a c k a g e : P A S S E D
M o |n a t a k |e w y Bc z y t r y b s z c z e g ó Bo w y c h k o m u n i k a t ó w , p o d a j c w a r t o [ F A L S E p r z y w y w o Ba -
n i u p r o c e d u r y r u n . O d p o w i e d n i e p o l e c e n i e p r z e d s t a w i o n o p o n i |e j :
S Q L > S E T S E R V E R O U T P U T O N S I Z E 1 0 0 0 0 0 0
S Q L > e x e c u t e t e s t _ b o o k . r u n ( v e r b o s e = > F A L S E )
b o o k p a c k a g e : P A S S E D
O m a w i a n y p a k i e t j e s t z b y t o b s z e r n y , a b y z a m i e [c i g o w t y m m i e j s c u . P o s i a d a o n k i l k a u d o g o d n i e D
w p o r ó w n a n i u d o w e r s j i p i e r w o t n e j . P e Bn a w e r s j a o m a w i a n e g o p a k i e t u z n a j d u j e s i ¹ p o d a d r e s e m
f t p : / / f t p . h e l i o n . p l / p r z y k l a d y / o r p l s q . z i p O d w i e d z a j c w i t r y n ¹ w y d a w n i c t w a O R e i l l y , C z y t e l n i k m o |e
t a k |e z a p o z n a s i ¹ z u t P L S Q L ( h t t p : / / o r a c l e . o r e i l l y . c o m / u t p l s q l ) , d a r m o w a p l i k a c j s Bu |c d o t e -
s t o w a n i a .
B y m o |e C z y t e l n i k u w a |a , |e w t r e [c i n i n i e j s z e g o r o z d z i a Bu p o Bo |o n o z b y t d u |y n a c i s k n a k w e s t i ¹
t e s t o w a n i a o p r o g r a m o w a n i a . W a r t o j e d n a k u [w i a d o m i s o b i e , |e p r o g r a m o w a n i e j e s t d z i a Ba n i e m
u k i e r u n k o w a n y m n a s z c z e g ó By u |y t k o w n i c y a p l i k a c j i s b a r d z o w y m a g a j c y i j a k i e k o l w i e k
l e k c e w a |e n i e p o t e n c j a l n y c h p r o b l e m ó w j e s t b a r d z o r y z y k o w n p o s t a w ( i s t n i e j e t a k z w a n y s t y l
p r o g r a m o w a n i a e k s t r e m a l n e g o 6 g l o r y f i k u j c y t a k p o s t a w ¹) . A z a t e m p r o g r a m t e s t o w y n a l e |y t w o -
r z y b a r d z o w c z e [n i e . N i e k t ó r z y u w a |a j , |e p r o g r a m t e s t o w y p o w i n i e n b y t w o r z o n y j e s z c z e p r z e d
n a p i s a n i e m g Bó w n e j a p l i k a c j i . Z b y t d Bu g i e z w l e k a n i e z n a p i s a n i e m p r o g r a m u t e s t o w e g o m o |e w e f e k -
c i e s p o w o d o w a , |e n i g d y n i e p o w s t a n i e , a n a w e t j e [l i p o w s t a n i e , e w e n t u a l n a z w Bo k a m o |e u n i e -
m o |l i w i o s i g n i ¹c i e p e w n y c h k o r z y [c i w y n i k a j c y c h z t e s t o w a n i a . M y [l c o s p o d z i e w a n y c h w y -
n i k a c h n a w c z e s n y m e t a p i e t w o r z e n i a a p l i k a c j i Ba t w i e j j e s t z n a l e z b B¹d y i n a p r a w i j e s z y b k o i b e z
p o n o s z e n i a z b ¹d n y c h k o s z t ó w .
P i s a n i e d o b r y c h p r o g r a m ó w t e s t o w y c h n i e j e s t z a d a n i e m t r y w i a l n y m . D l a t e g o w i e l u p r o g r a m i s t ó w ,
p i s z c y c h a p l i k a c j e p o d p r e s j c z a s u , s t w i e r d z a , |e m o |e p o m i n t e n e t a p . W a r t o j e d n a k z a p a -
m i ¹t a n a s t ¹p u j c d e w i z ¹:
J e [l i n i e m a c z a s u , a b y w y k o n a z a d a n i e p r a w i d Bo w o z a p i e r w s z y m r a z e m , t o s k d w z i c z a s ,
a b y w y k o n a j e o d n o w a ?
A u t o r z y u w a |a j , |e a b y z o s t a n a p r a w d ¹ d o b r y m p r o g r a m i s t , n a l e |y t w o r z y p r o g r a m y t e s t o w e .
T a k i s p o s ó b p o s t ¹p o w a n i a u m o |l i w i s p ¹d z a n i e w i ¹k s z e j i l o [c i c z a s u n a p i s a n i u n o w y c h p r o g r a m ó w ,
a m n i e j n a u s u w a n i u b B¹d ó w w p r o g r a m a c h s t a r y c h .
P o z d o b y c i u p e w n e g o d o [w i a d c z e n i a w w y k o r z y s t y w a n i u p r o c e d u r , f u n k c j i i p a k i e t ó w C z y t e l n i k
z p e w n o [c i z e c h c e p o d n i e [ p o z i o m s w o j e j p r a c y p r o g r a m i s t y c z n e j . P o n i |e j z n a j d u j e s i ¹ k i l k a p o -
r a d i s u g e s t i i d o t y c z c y c h t e g o z a g a d n i e n i a .
6
W i ¹c e j i n f o r m a c j i n a t e n t e m a t m o |n a z n a l e z w k s i |c e p o [w i ¹c o n e j t e j t e m a t y c e , k t ó r e j a u t o r e m j e s t K e n t
B e c k l u b z a j r z e n a w i t r y n ¹ h t t p : / / w w w . e x t r e m e p r o g r a m m i n g . o r g / .
P r z y j ¹c i e o d p o w i e d n i e g o s p o s o b u n a z y w a n i a p l i k ó w , k t ó r e z a w i e r a j k o d zr ó d Bo w y t w o r z o n y c h
p r o g r a m ó w , j e s t z p e w n o [c i b a r d z o w a |n y m z a g a d n i e n i e m . P r z y k Ba d o w o , w p r z y p a d k u p l i k ó w
z a w i e r a j c y c h k o d P L / S Q L w a r t o , a b y r o z s z e r z e n i e n a z w y p l i k u o d z w i e r c i e d l a Bo j e g o z a w a r t o [.
W r o z d z i a l e 6 . z n a j d u j e s i ¹ b a r d z i e j s z c z e g ó Bo w e o m ó w i e n i e t e g o z a g a d n i e n i a . P o n i |e j p o d a n o j e d y -
n i e k i l k a g Bó w n y c h w y t y c z n y c h :
W z o r z e c n a z w y p l i k u Z a w a r t o [
n a z w a . p r o
( P o j e d y n c z a ) p r o c e d u r a m a g a z y n o w a n a
n a z w a . f u n
( P o j e d y n c z a ) f u n k c j a m a g a z y n o w a n a
n a z w a . s q l
B l o k a n o n i m o w y l u b s k r y p t z a w i e r a j c y w i e l e b l o k ó w , i n s t r u k c j i S Q L i ( l u b )
p o l e c e D S Q L * P l u s
n a z w a . p k s
S p e c y f i k a c j a p a k i e t u
n a z w a . p k b
C i a Bo p a k i e t u
W r a z i e z a s t o s o w a n i a p o w y |s z y c h k o n w e n c j i n i e k t ó r e z p l i k ó w , k t ó r e w y m i e n i o n o w n i n i e j s z y m
r o z d z i a l e , n o s i By b y n a s t ¹p u j c e n a z w y :
a d d _ b o o k . p r o P r o c e d u r a m a g a z y n o w a n a a d d _ b o o k
b o o k _ c o p y _ q t y . f u n F u n k c j a m a g a z y n o w a n a b o o k _ c o p y _ q t y
t e s t _ a d d _ b o o k . s q l P r o g r a m t e s t u j c y d l a a d d _ b o o k
b o o k . p k s S p e c y f i k a c j a p a k i e t u b o o k
b o o k . p k b C i a Bo p a k i e t u b o o k
S p e c y f i k a c j a i c i a Bo p a k i e t u p o w i n n y b y u m i e s z c z o n e w o d d z i e l n y c h p l i k a c h .
C z y t e l n i k n i e p o w i n i e n s d z i , |e w y d a j n o [ p r a c y p r o g r a m i s t y j e s t w p r o s t p r o p o r c j o n a l n a d o l i c z b y
l i n i i n a p i s a n e g o k o d u . D a w n o t e m u b y B t o p o g l d l i c z n y c h t e o r e t y k ó w p r o g r a m o w a n i a . J e d n a k m a Be
j e s t p i ¹k n e p r o g r a m i s t a p o w i n i e n s t a r a s i ¹ o s i g a d u |y e f e k t k o s z t e m m a Be g o w y s i Bk u . O t o p e w -
n a h i s t o r y j k a :
P e w i e n P r a w d z i w y P r o g r a m i s t a z d o Ba B z m i e [c i p r o g r a m d o p a s o w y w a n i a d o w z o r c a ( p a t t e r n
m a t c h i n g ) w k i l k u s e t k i l o b a j t a c h n i e u |y w a n e j p a m i c i s o n d y V o y a g e r , k t ó r e j z a d a n i e m b y Bo
o d s z u k a n i e i s f o t o g r a f o w a n i e n o w e g o k s i |y c a J o w i s z a 7 .
B e z w z g l ¹d u n a t o , c z y p o w y |s z a a n e g d o t a j e s t p r a w d z i w a c z y n i e , k a |d y p r o g r a m i s t a p o w i n i e n
s t a r a s i ¹ p i s a k o d z w i ¹z By ( a l e n i e n i e z r o z u m i a By ) . J e d n y m z e s p o s o b ó w n a o s i g n i ¹c i e t e g o c e l u
j e s t p r o j e k t o w a n i e k o d u m o |l i w e g o d o p o n o w n e g o w y k o r z y s t a n i a . P o n i |s z y p r z y k Ba d u m o |l i w i
z r o z u m i e n i e p r o b l e m u .
7
F r a g m e n t p o c h o d z i z a r t y k u Bu R e a l P r o g r a m m e r s D o n t U s e P A S C A L , D a t a m a t i o n , J u l y 1 9 8 3 , s . 2 6 3 2 6 5 .
P o n i |e j p r z e d s t a w i o n o d z i a Ba n i e p r o c e d u r y r e p o r t e q .
W y p i s z o p i s t e s t u .
P o r ó w n a j w a r t o [ o c z e k i w a n z w a r t o [c i o t r z y m a n .
J e [l i o b y d w i e w a r t o [c i s r ó w n e , w y p i s z k o m u n i k a t P A S S E D , j e [l i n i e F A I L E D .
P o n i |s z y k o d j u | b y B o m a w i a n y w n i n i e j s z y m r o z d z i a l e , a l e z o s t a B p o w t ó r z o n y d l a z a c h o w a n i a p r z e j -
r z y s t o [c i w y k Ba d u .
C R E A T E O R R E P L A C E P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N V A R C H A R 2 , a c t u a l _ v a l u e I N V A R C H A R 2 )
A S
B E G I N
D B M S _ O U T P U T . P U T ( d e s c r i p t i o n | | ' : ' ) ;
I F e x p e c t e d _ v a l u e = a c t u a l _ v a l u e
O R ( e x p e c t e d _ v a l u e I S N U L L A N D a c t u a l _ v a l u e I S N U L L )
T H E N
D B M S _ O U T P U T . P U T _ L I N E ( ' P A S S E D ' ) ;
E L S E
D B M S _ O U T P U T . P U T _ L I N E ( ' F A I L E D . E x p e c t e d ' | | e x p e c t e d _ v a l u e
| | ' ; g o t ' | | a c t u a l _ v a l u e ) ;
E N D I F ;
E N D ;
/
P r o g r a m t e n p o r ó w n u j e d w i e z m i e n n e t y p u V A R C H A R 2 . N a s t ¹p n a f u n k c j a , r e p o r t e q b o o l , p o -
s i a d a i d e n t y c z n y p s e u d o k o d , a l e j e s t p r z e z n a c z o n a d o p o r ó w n y w a n i a w a r t o [c i l o g i c z n y c h t y p u
B O O L E A N . M o |n a b y d o k o n a t y l k o d r o b n y c h m o d y f i k a c j i w o r y g i n a l e , j a k p o k a z a n o w p o n i |s z y m
f r a g m e n c i e k o d u :
C R E A T E O R R E P L A C E P R O C E D U R E r e p o r t e q b o o l ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N B O O L E A N , a c t u a l _ v a l u e I N B O O L E A N ) A S
B E G I N
D B M S _ O U T P U T . P U T ( d e s c r i p t i o n | | ' : ' ) ;
I F ( e x p e c t e d _ v a l u e A N D a c t u a l _ v a l u e )
O R ( e x p e c t e d _ v a l u e I S N U L L A N D a c t u a l _ v a l u e I S N U L L )
T H E N
D B M S _ O U T P U T . P U T _ L I N E ( ' P A S S E D ' ) ;
E L S E
D B M S _ O U T P U T . P U T _ L I N E ( ' F A I L E D . ' ) ;
E N D I F ;
E N D ;
/
N a w e t p r o g r a m i s t a , k t ó r y n i e j e s t o d p o w i e d z i a l n y z a o p r o g r a m o w a n i e s o n d y V o y a g e r , m o |e z a -
u w a |y , |e p o w y |s z y k o d c h a r a k t e r y z u j e s i ¹ p e w n n a d m i a r o w o [c i . W r a z i e k o n i e c z n o [c i m o d y -
f i k a c j i d z i a Ba n i a c z ¹[c i t e s t u j c e j l u b r a p o r t u j c e j ( n a p r z y k Ba d w c e l u z a p i s a n i a w s z y s t k i c h o p i s ó w
i w y n i k ó w t e s t u w t a b e l i b a z y d a n y c h ) o k a z a Bo b y s i ¹, |e t r z e b a w y k o n a d w a r a z y w i ¹c e j p r a c y .
P r o b l e m a t y c z n e t e | m o |e o k a z a s i ¹ o k r e [l e n i e d w ó c h r ó |n y c h m i e j s c , w k t ó r y c h n a l e |y d o k o n a
z m i a n . C z ¹s t o t a k i e z m i a n y s d o k o n y w a n e p r z e z k o g o [ i n n e g o , n i | t w ó r c a o r y g i n a l n e j w e r s j i . O s o -
b a t a k a m o |e n i e b y [w i a d o m a i s t n i e n i a k o n i e c z n o [c i z m o d y f i k o w a n i a k o d u w d w ó c h m i e j s c a c h .
W r e z u l t a c i e p o w s t a n i e n i e z g o d n o [, k t ó r e j w y k r y c i e b ¹d z i e k w e s t i p r z y p a d k u .
W j ¹z y k u P L / S Q L i s t n i e j e m o |l i w o [ u n i k n i ¹c i a t a k i e g o p r o b l e m u p r z e z z m o d y f i k o w a n i e d r u g i e j
p r o c e d u r y w t a k i s p o s ó b , a b y w y w o By w a Ba p i e r w s z . A b y t o u m o |l i w i , n a l e |y p r z e k o n w e r t o w a
w a r t o [c i l o g i c z n e B O O L E A N n a V A R C H A R 2 . N i e s t e t y , f u n k c j a T O _ C H A R n i e o b s Bu g u j e z m i e n n y c h
t y p u B O O L E A N . M o |n a j e d n a k n a p i s a w Ba s n f u n k c j ¹ d o k o n u j c t e j k o n w e r s j i . Z g o d n i e z o b o -
w i z u j c y m i w s y s t e m i e O r a c l e z a s a d a m i n a d a w a n i a n a z w f u n k c j o m k o n w e r s j i , j e j n a z w b ¹d z i e
b o o l e a n t o c h a r :
C R E A T E O R R E P L A C E F U N C T I O N b o o l e a n t o c h a r ( i s _ t r u e I N B O O L E A N )
R E T U R N V A R C H A R 2
A S
B E G I N
I F i s _ t r u e
T H E N
R E T U R N ' T R U E ' ;
E L S I F N O T i s _ t r u e
T H E N
R E T U R N ' F A L S E ' ;
E L S E
R E T U R N T O _ C H A R ( N U L L ) ;
E N D I F ;
E N D b o o l e a n t o c h a r ;
/
T e r a z m o |n a j u | z m o d y f i k o w a p r o c e d u r ¹ r e p o r t e q b o o l w n a s t ¹p u j c y s p o s ó b :
C R E A T E O R R E P L A C E P R O C E D U R E r e p o r t e q b o o l ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N B O O L E A N , a c t u a l _ v a l u e I N B O O L E A N )
A S
B E G I N
r e p o r t e q ( d e s c r i p t i o n , b o o l e a n t o c h a r ( e x p e c t e d _ v a l u e ) ,
b o o l e a n t o c h a r ( a c t u a l _ v a l u e ) ) ;
E N D r e p o r t e q b o o l ;
/
N a j w a |n i e j s z a k w e s t i , n a k t ó r n a l e |y z w r ó c i u w a g ¹, j e s t t o , |e c a By k o d z w i z a n y z t e s t o w a -
n i e m z n a j d u j e s i ¹ w p r o c e d u r z e r e p o r t e q . A z a t e m w r a z i e k o n i e c z n o [c i z m i a n y s p o s o b u j e j
d z i a Ba n i a w y s t a r c z y t y l k o z m i e n i k o d j e d n e g o p r o g r a m u . N a w e t j e [l i o s o b a z a j m u j c a s i ¹ k o n -
s e r w a c j d a n e g o k o d u n i e b ¹d z i e w i e d z i a Ba , k t ó r y p r o g r a m n a l e |y z m i e n i , o m a w i a n y s p o s ó b t w o -
r z e n i a k o d u u m o |l i w i j e j s z y b k i e z o r i e n t o w a n i e s i ¹ w s y t u a c j i .
N i e j e s t t o j e d n a k o s t a t n i a m e t o d a u Ba t w i a n i a s o b i e p r a c y . M o |n a u p r o [c i j j e s z c z e b a r d z i e j z a
p o m o c t e c h n i k i z w a n e j p r z e c i |a n i e m ( o v e r l o a d i n g ) .
C z y t e l n i k z a p e w n e p r z y p o m i n a s o b i e , |e w e w c z e [n i e j s z e j c z ¹[c i n i n i e j s z e g o r o z d z i a Bu o p i s a n o
w s k r ó c i e t e c h n i k ¹ p r z e c i |a n i a . O p i s a n o u t w o r z e n i e p r o c e d u r y r e p o r t e q , k t ó r a o b s Bu g u j e c i g i
z n a k o w e o r a z p r o c e d u r y r e p o r t e q b o o l , w y k o n u j c e j p o r ó w n a n i a n a w a r t o [c i a c h l o g i c z n y c h
t y p u B O O L E A N . P r a w d o p o d o b n i e p o t r z e b n a b y Ba b y t a k |e w e r s j a o b s Bu g u j c a d a t y f u n k c j a
r e p o r t e q d a t e , i t a k d a l e j . Z a d a n i a w y k o n y w a n e p r z e z t e w s z y s t k i e p r o g r a m y b y By b y b a r d z o
p o d o b n e . W a r t o z a t e m b y Bo b y u t w o r z y j e d e n p r o g r a m ( l u b p r z y n a j m n i e j z a s t o s o w a t y l k o j e d n
n a z w ¹ p r o g r a m u ) , k t ó r y p e Bn i Bb y f u n k c j e w s z y s t k i c h w y |e j w y m i e n i o n y c h . P o z w o l i Bo b y t o n a p r z e -
n i e s i e n i e w i e l u o b o w i z k ó w u |y t k o w n i k a n a p r o g r a m u |y t k o w y . I m m n i e j n a z w p r o g r a m ó w t r z e -
b a z a p a m i ¹t a , t y m l e p i e j .
T e c h n i k a p r z e c i |a n i a s Bu |y w Ba [n i e d o o s i g n i ¹c i a t y c h c e l ó w . U o g ó l n i a j c , p r z e c i |e n i e p r o c e -
d u r y o z n a c z a z d e f i n i o w a n i e w i ¹c e j n i | j e d n e j p r o c e d u r y o t e j s a m e j n a z w i e . W r a m a c h p a k i e t u m a
s i ¹ w ó w c z a s d o s t ¹p d o f a k t y c z n i e c z t e r e c h r ó |n y c h p r o c e d u r . P o n i |e j z n a j d u j e s i ¹ p r z y k Ba d w y -
k o r z y s t a n i a t e j t e c h n i k i w p a k i e c i e z a w i e r a j c y m z b i ó r p r o g r a m ó w t e s t o w y c h . P o n i |e j p r z e d s t a -
w i o n o k o d p r z y k Ba d o w e j s p e c y f i k a c j i p a k i e t u :
C R E A T E O R R E P L A C E P A C K A G E t u t A S
P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N V A R C H A R 2 , a c t u a l _ v a l u e I N V A R C H A R 2 ) ;
P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N N U M B E R , a c t u a l _ v a l u e I N N U M B E R ) ;
P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N B O O L E A N , a c t u a l _ v a l u e I N B O O L E A N ) ;
P R O C E D U R E r e p o r t e q ( d e s c r i p t i o n I N V A R C H A R 2 ,
e x p e c t e d _ v a l u e I N D A T E , a c t u a l _ v a l u e I N D A T E ) ;
P R O C E D U R E i n n a _ p r o c e d u r a ;
E N D ;
/
P o s z c z e g ó l n e p r o c e d u r y r e p o r t e q m a j t s a m n a z w ¹ i r ó |n i s i ¹ t y l k o t y p a m i d a n y c h p a r a m e -
t r ó w . T o j e s t c z ¹[ u k r y t a . N a l e |y j e s z c z e z a i m p l e m e n t o w a w s z y s t k i e c z t e r y p r o c e d u r y w j e d -
n y m c i e l e p a k i e t u . M o |n a u w z g l ¹d n i i c h w z a j e m n e w y w o By w a n i e s i ¹, c o o p i s a n o w e w c z e [n i e j -
s z e j c z ¹[c i n i n i e j s z e g o r o z d z i a Bu . A u t o r z y p o z o s t a w i l i u t w o r z e n i e c i a Ba p a k i e t u j a k o w i c z e n i e d l a
C z y t e l n i k a .
O g r o m n z a l e t t e c h n i k i p r z e c i |a n i a j e s t t o , |e u |y w a j c t a k i e j p r o c e d u r y l u b f u n k c j i P L / S Q L ,
s a m o d z i e l n i e r o z p o z n a j e o n a , k t ó r z n i c h n a l e |y w y w o Ba :
D E C L A R E
r o z m i a r _ b u t a N U M B E R ;
r e z u l t a t _ s z u k a n i a V A R C H A R ( 6 4 ) ;
B E G I N
. . .
t u t . r e p o r t e q ( ' p r o c e d u r a f l u b b e r , w y k r y c i e m a k s y m a l n e g o r o z m i a r u b u t a ' ,
e x p e c t e d _ r e s u l t = > 1 5 , a c t u a l _ r e s u l t = > r o z m i a r _ b u t a ) ;
t u t . r e p o r t e q ( ' p r o c e d u r a f l u b b e r , w y s z u k i w a n i e m o r s a ' ,
e x p e c t e d _ r e s u l t = > ' J e s t e m m o r s e m ' , a c t u a l _ r e s u l t = > r e z u l t a t _ s z u k a n i a ) ;
E N D ;
O z n a c z a t o , |e k a |d e w y w o Ba n i e p r o c e d u r y r e p o r t e q z o s t a j e d o p a s o w a n e d o o d p o w i e d n i e j s y t u a c j i .
I s t n i e j e k i l k a s y t u a c j i , w k t ó r y c h m e t o d a p r z e c i |a n i a n i e u m o |l i w i a p r a w i d Bo w e g o d z i a Ba n i a s y s t e -
m u . B Bd j e d n a k z o s t a n i e z w r ó c o n y d o p i e r o w c z a s i e p r ó b y u r u c h o m i e n i a p r o g r a m u . P o n i |e j w y -
m i e n i o n o p o d s t a w o w e z a s a d y , k t ó r y c h p r z e s t r z e g a n i e p o z w o l i n a p r a w i d Bo w e d z i a Ba n i e m e c h a n i -
z m u p r z e c i |a n i a :
1 . P r z e c i |a n e p r o g r a m y m u s z p o s i a d a t a k s a m n a z w ¹ o r a z z n a j d o w a s i ¹ w t y m s a m y m
p a k i e c i e 8 .
8
M o |n a t a k |e p r z e c i |a p r o g r a m y d o Bc z o n e w s e k c j i d e k l a r a c j i .
2 . P r z e c i |a n e p r o g r a m y m u s z r ó |n i s i ¹ a l b o l i c z b p a r a m e t r ó w , a l b o r o d z a j e m t y p u d a n y c h
p a r a m e t r ó w ( u w z g l ¹d n i a j c p o z y c y j n e p o r ó w n a n i e ) . P r z y k Ba d o w o , w p r z y p a d k u m e c h a n i z m u
p r z e c i |a n i a s y s t e m b a z y d a n y c h , k t ó r y w y k o n u j e p r o g r a m , n i e m o |e s t w i e r d z i r ó |n i c y
p o m i ¹d z y t y p a m i N U M B E R a I N T E G E R , a l e b ¹d z i e t o m o |l i w e w p r z y p a d k u t y p ó w N U M B E R
i V A R C H A R 2 , g d y | n a l e | o n e d o r ó |n y c h r o d z a j ó w t y p ó w d a n y c h .
3 . P r o c e d u r a m o |e b y p r z e c i |o n a f u n k c j , n a w e t j e [l i p o w y |s z e d w a w a r u n k i n i e s s p e Bn i o n e .
4 . P r z e c i |a n e f u n k c j e m u s z s i ¹ r ó |n i c z y m [ w i ¹c e j , n i | t y l k o t y p e m d a n y c h w a r t o [c i z w r a c a n e j .
W p r z y p a d k u n i e s p e Bn i e n i a k t ó r e g o [ z w y m i e n i o n y c h w a r u n k ó w z a z w y c z a j p o j a w i a s i ¹ b Bd w y -
k o n a n i a : P L S - 0 0 3 0 7 : t o o m a n y d e c l a r a t i o n s o f <