Ders 5 - PLSQL'e Giriş, Prosedür ve Fonksiyonlar.ppt
-
Upload
darkplotter -
Category
Documents
-
view
239 -
download
0
Transcript of Ders 5 - PLSQL'e Giriş, Prosedür ve Fonksiyonlar.ppt
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
1/29
Veri Taban Ynetim Sistemleri 2Ders 5
PL/SQL'e Giri, Prosedr e !on"si#onlar
Yrd$ Do%$ Dr$ <an (S)T
Tra"#a *niersitesi+ilisa#ar -endisli.i +lm
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
2/29
PL/SQL nedir
0ra1le VTYS 3erinde "4llanlma"3ere, &D& roramlama dili temelalnara" elitirilen standart SQL'erosedrel dil 3elli"leri e"lenere"ol4t4r4lm4 dildir$
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
3/29
SQL ile PL/SQL6in arasnda"i temel7ar"8
SQL de1laratiee 9GL bir dildir$ Yani do.al dile#a"ndr$ :4llan1 ne #ama" istedi.ini #a3ar, nasl#ala1a.nn admlarn a#rntl olara" erme3$ &-met S0L&; isimli ersonelin maan b4lma" i%in
basit bir S(L(
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
4/29
?eden PL/SQL :4llanr3
+a3 d4r4mlarda ilemin @naslA #ala1a.n erme"ere"ebilir$B
+ir%o" SQL "om4t4n4 bir blo" i%inde tola#ara" te"se7erde eritabanna nderme" er7ormans art
sa.la#abilir$ letim sisteminden e lat7ormdan ba.ms3 olma"
3ere 0ra1le s4n414s4n4n old4.4 -er ortamda%alabilmesi nedeni#le PL/SQL sa"l #ordamlarn
"4llanma" esne"li" sa.lar$ @(C1etion andlinA me"ani3masna sa-i old4.4
i%in -ata d4r4mlarnda #ala1a" ilemleritanmla#abiliri3$
B SQL6in -ani d4r4mda #etersi3 "alabile1e.i -a""nda bir rne" i%in8Database Prorammin Eit- PL/SQL, Se1tion F, Lesson F, Sla#t HF>
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
5/29
PL/SQL +lo.4
+ir PL/SQL blo.4 +(GI?ile balare (?DJile biter$
+lo" i%inde de.i"enler
"4llanla1a" ise +(GI? n1esindeD(
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
6/29
+lo" Tileri
Anonim ProsedrFonksiyon
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
7/29
Prosedrel Yalar
PL/SQL'de aa.da"i rosedrel#alar "4llanlr8 De.i"enler, sabitler e tanmlamal eri
tileri :ontrol #alar MI7H(lse,
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
8/29
De.i"en Tanmlama
De.i"ene blo" i%inde de.eratar"en de 8 oeratr
"4llanlr$
Sentaks:
rnekler:
Veri Tileri -a""nda deta#l bili i%in8
Database Prorammin Eit- PL/SQL, Se1tion 2, Lesson >, Ke1oni3inData T#es
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
9/29
PL/SQL +lo.4 rne"leri
Sistem tari-ini sterme8BEGIN
DBMS_OUTPUT.PUT_LINE('Bugn = ' || SYSDATE);
END;
De.i"ene ata#ara" sistem tari-ini sterme8DECLARE
v_!"# DATE $= SYSDATE;
BEGIN
DBMS_OUTPUT.PUT_LINE('Bugn = ' || v_!"#);
END;
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
10/29
RTYP( e RK0OTYP(
(.er bir de.i"enin tanm erilir"en, eritabantablolarndan birinde"i bir niteli.in eri trndeolmas isteni#orsa RTYP( "4llanlr8#%n_! "!*+,_!.-"un_!TYPE;
+!-"_n!/# #/0.#n!/#TYPE;
(.er bir niteli" de.il de bir tablo #ada 14rsor6da"ibir "a#t s3 "on4s4 ise RK0OTYP( "4llanlr8
#0"_1#2 #0"RO3TYPE; :a#dn alanlarna 4lama" i%in no"ta notas#on4
"4llanlr8/4_#0"n, $= #0"_1#2.#0"n,;RTYP( -a""nda bili i%in8 Se1tion 2, Lesson 9, )sin S1alar Data
T#es
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
11/29
I!HT(?H(LSI!H(LS(
:o4la re ilem #ama" i%in I!HT(?H(LS( "4llanlabilir8
?0T8 (LS( I! #a3m (LSI!e"lindedir$
Deta#l bili i%in8 Se1tion 9, Lesson F,
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
12/29
rne"DECLARE5"4_,n_6!n NUMBER(7);
BEGIN
SELECT 5u!n"&"4 INTO 5"4_,n_6!n
8ROM &nv#n",14 39ERE 01,u2" = 'TENNIS RAC:ET'
8OR UPDATE O8 5u!n"&"4;
I8 5"4_,n_6!n < T9EN 26#2 5u!n"&"4UPDATE &nv#n",14 SET 5u!n"&"4 = 5u!n"&"4 >
39ERE 01,u2" = 'TENNIS RAC:ET';
INSERT INTO 0u126!-#_1#2,1
?ALUES ('T#nn&- 1!2#" 0u126!-#'@ SYSDATE);
ELSE
INSERT INTO 0u126!-#_1#2,1
?ALUES ('Ou" , "#nn&- 1!2#"-'@ SYSDATE);
END I8;
COMMIT;
END;
De.i"ene S(L(
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
13/29
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
14/29
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
15/29
!0K Dns
Tm roramlama dillerinde en %o" "4llanlandn i7adesi olan !or dnsnn, PL/SQL6de"4llanm aa.da"i ibidir88OR deerIN baslangi..bitiLOOP
&+#/+#1
END LOOP;
rne"88OR nu/ IN >..7
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
16/29
OIL( Dns
39ILE koulLOOP
&+#/+#1
EIT 39EN koulF
END LOOP; (ITHO(? i7adesi !0K dnsnde de
"4llanlabilir$ stenirse !0K e#a OIL( #a3lmadan, d3
bir L00P X (?D L00P dns #aratlabilir$+4 dnden %"ma" i%in (ITHO(?"4llanm arttr$
Deta#l bili i%in8 Se1tion 9, Lesson 9, Iteratie
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
17/29
ISSELECT #/0n,@ #n!/#@ ,* 8ROM#/0 39ERE #0"n, = H
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
18/29
!0K Dnlerinin LOOP
...
-!+_","!+ $= -!+_","!+ #/0_1#2.-!+; END LOOP;
END;
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
19/29
ata leme
DECLARE
...
2,//_/&--&ng ECEPTION; #2+!1# #J2#0"&,n
BEGIN
... I8 2,//&--&,n IS NULL T9EN
RAISE 2,//_/&--&ng; 1!&-# #J2#0"&,n
END I8;
*,nu- $= (-!+!14 K
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
20/29
rne"DECLARE
#_&nv!+&_#0!1"/#n" ECEPTION;v_n!/# ?ARC9ARH(H
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
21/29
Genel atalarn lenmesi
DECLARE v_2,un"14_n!/# ?ARC9ARH(
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
22/29
rne"DECLARE
-!+!14 #/0.-!+TYPE $=
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
23/29
Stored Pro1ed4re MSa"lYordamN
Stored Pro1ed4re6ler eritabannda sa"lanan eere"ti.inde ismi ile %a.rlabilenPL/SQL blo"lardr$
De.er dndren rosedrlere 7on"si#on M74n1tionNdenir$
n1eden derlenmi old4.4 i%in, normal "4lland.m3bir SQL sor4s4n4n te"rar te"rar %altrlmasnana3aran da-a 7a3la er7ormans elde etmemi3isa.larlar$
Serer 3erinde t4t4ld4.4ndan, #" istem1i tara7nade.il de, s4n414 tara7na #"le#ere" roramm3ner7ormansn arttrr$ M(lbette "i b4 bir se%imdir$S4n414n43 %l#se b4 se%imi ter1i- edebilirsini3$N
Prosedrler -a""nda deta#l bili i%in8Database Prorammin Eit- PL/SQL, Se1tion
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
24/29
Stored Pro1ed4re MDeamXN
+ir "e3 #a3l, te"rar te"rar "4llanld. i%inmodler bir #ada roram elitirmi ol4r43$
n PL/SQL i7adesini birden 7a3la #erde"4llana1a.m3 3aman, b4n4 bir sa"l #ordam-aline etirere", "4llanmn sade1e ismini%a.rma ile er%e"letirebiliri3$
+elirli irdi e %"t arametreleri old4.4 i%in, sa"l#ordamlarn "4llanm ile enli" a%sndan
"endimi3i sa.lama alm ol4r43$ &. traZ.ini a3altr$ stem1i tara7ndan bir%o" satra
sa-i SQL "om4t4n4n s4n414#a itmesindense,sade1e sa"l #ordamn adnn s4n414#a itmesi
a. da-a a3 me4l etmi ol4r$
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
25/29
Parametresi3 Stored Pro1ed4re
CREATE PROCEDURE 01&n"_!"# IS
v_!"# ?ARC9ARH(Q
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
26/29
Parametreli Stored Pro1ed4re
CREATE PROCEDURE 0!1!_4!"&1/!
(6#-_n, IN NUMBER@ /&"!1 INNUMBER)
ASBEGIN
UPDATE 6#-!0+!1
SET *!&4# = *!&4# /&"!1 39ERE 6#-!0_n, = 6#-_n,;
END;
Prosedrler SQL Pl4s e#a SQLDeeloer altnda ((< Me#a((,FNJ
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
27/29
CREATE PROCEDURE !!1_*,nu- (#/0_& NUMBER) IS*,nu- NUMBER(>
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
28/29
!on"si#on
+ir%o" roramlama dilinde old4.4 ibiPL/SQL6de de dile 3n -a3r 7on"si#onlar-ari1inde, "4llan1#a 7on"si#on tanmlamaolana. sa.lanr$
!on"si#onlar rosedrlerden 7ar"l olara" K(T)K?"om4t4 ile %a.rld"lar #ere de.er dndrrler$
Dndre1e.i eritii e de.i"en ismi +(GI?n1esinde tanmlanr$
Geri#e de.er dndrme#en rosedrler ((
-
7/25/2019 Ders 5 - PLSQL'e Giri, Prosedr ve Fonksiyonlar.ppt
29/29
Parametre olara" ald. strin'te"i"ara"ter sa#sn dndren 7on"si#on
CREATE 8UNCTION nu/_26!1!2"#1-
(0_-"1&ng IN ?ARC9ARH)
RETURN INTEGER IS nu/_26!1- INTEGER;
BEGIN
SELECT LENGT9(0_-"1&ng)
INTO nu/_26!1-
8ROM DUAL; RETURN nu/_26!1-;
END;!on"si#onlar -a""nda deta#l bili i%in8
Database Prorammin Eit- PL/SQL Se1tion W