Ders 5 - PLSQL'e Giriş, Prosedür ve Fonksiyonlar.ppt

download Ders 5 - PLSQL'e Giriş, Prosedür ve Fonksiyonlar.ppt

of 29

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$ &ltan (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