PL/SQL Hizkuntza
Zergaitik PL/SQL

 SQL ez da nahikoa programak egiteko
   Ez dauka kontrol egiturak
   Ez aldagairik
   Ez erroreen kudeaketarik
   …


 Programak datubasean gordetzen dira

 Programak zerbitzarian exekutatzen dira



                     Datubaseen laborategia   2
                         Informatika
PL/SQL Blokea
 Programa eta azpiprograma guztiak blokeraren egitura daukate
 Bloke batek hiru zonalde ditu
    Deklarazio zonaldea. DECLARE klausulak hasten du
    Agindu zonaldea BEGIN-ekin hasten da
    Exception kudeaketaren zonaldea. EXCEPTION-ekin hasten da
 Blokea beti END hitzarekin bukatzen da
         [DECLARE
            ….]
         BEGIN
            Aginduak            Agindak ;-az banatuta
         [EXCEPTION
            Kudeaketa]
         END;


                      Datubaseen laborategia                    3
                           Informatika
DATU MOTAK

 NUMBER
 CHAR
 VARCHAR2
 DATE
 BOOLEAN
 %TYPE (Izena EMP.EMPNO%TYPE)
 %ROWTYPE (langilea EMP%ROWTYPE)




              Datubaseen laborategia   4
                  Informatika
Kontrol egiturak

 BALDINTZA

 IF <baldintza> THEN
    Aginduak;
    …;
 ELSIF <baldintza> THEN
    Aginduak;
    …
 ELSE
    Aginduak;
    …
 END IF;


                Datubaseen laborategia   5
                    Informatika
Errepikakorrak
WHILE <baldintza> LOOP
  aginduak;
  …;
END LOOP;

FOR <aldagaia> IN <hasierako>.<bukaerako> LOOP
  aginduak;
  …;
END LOOP;

LOOP
   aginduak;
EXIT WHEN <baldintza>
   aginduak;
END LOOP;


                         Datubaseen laborategia   6
                             Informatika
Kurtsoreak

 SQL agindu baten emaitza gordetzeko balio dute

 Kurtsore sinpleak

   SELECT <eremua> INTO <aldagaia>
   FROM <taula>;

 Aldagaiaren mota eta eremuaren mota berdinak izan behar dute




                     Datubaseen laborategia                     7
                         Informatika
Erroreen kudeaketa

 Gehien ematen diren erroreak

   NO_DATA_FOUND (Select INTO balio gabe)
   TOO_MANY_ROWS (Select INTO balio bat baino gehiago)

   OTHERS beste agindu guztiak


 Gehiago daude




                   Datubaseen laborategia                8
                       Informatika
Programa motak

 Izen gabeko blokeak
   Momentuan exekutatzen dira


 Azpiprogramak
   Prozedurak
   Funtzioak




                   Datubaseen laborategia   9
                       Informatika
Erabiltzailearekin elkarrizketa

 PL/SQL ez dago pentsatuta erabiltzailearekin hitz egiteko

 DBMS_OUTPUT  Paketea
 PUT_LINE  Prozedura

 SET SERVEROUTPUT ON




                   Datubaseen laborategia              10
                       Informatika
Izen gabeko blokea

 Puntu (.) batekin bukatzen dira
 RUN Aginduarekin exekutatu
 /  . Eta RUN

 SAVE fitxategian gordetzeko (REPLACE)

 GET fitxategia kargatzeko

 START fitxategia kargatu eta exekutatu


                   Datubaseen laborategia   11
                       Informatika

Plsql

  • 1.
  • 2.
    Zergaitik PL/SQL SQLez da nahikoa programak egiteko Ez dauka kontrol egiturak Ez aldagairik Ez erroreen kudeaketarik … Programak datubasean gordetzen dira Programak zerbitzarian exekutatzen dira Datubaseen laborategia 2 Informatika
  • 3.
    PL/SQL Blokea Programaeta azpiprograma guztiak blokeraren egitura daukate Bloke batek hiru zonalde ditu Deklarazio zonaldea. DECLARE klausulak hasten du Agindu zonaldea BEGIN-ekin hasten da Exception kudeaketaren zonaldea. EXCEPTION-ekin hasten da Blokea beti END hitzarekin bukatzen da [DECLARE ….] BEGIN Aginduak Agindak ;-az banatuta [EXCEPTION Kudeaketa] END; Datubaseen laborategia 3 Informatika
  • 4.
    DATU MOTAK NUMBER CHAR VARCHAR2 DATE BOOLEAN %TYPE (Izena EMP.EMPNO%TYPE) %ROWTYPE (langilea EMP%ROWTYPE) Datubaseen laborategia 4 Informatika
  • 5.
    Kontrol egiturak BALDINTZA IF <baldintza> THEN Aginduak; …; ELSIF <baldintza> THEN Aginduak; … ELSE Aginduak; … END IF; Datubaseen laborategia 5 Informatika
  • 6.
    Errepikakorrak WHILE <baldintza> LOOP aginduak; …; END LOOP; FOR <aldagaia> IN <hasierako>.<bukaerako> LOOP aginduak; …; END LOOP; LOOP aginduak; EXIT WHEN <baldintza> aginduak; END LOOP; Datubaseen laborategia 6 Informatika
  • 7.
    Kurtsoreak SQL agindubaten emaitza gordetzeko balio dute Kurtsore sinpleak SELECT <eremua> INTO <aldagaia> FROM <taula>; Aldagaiaren mota eta eremuaren mota berdinak izan behar dute Datubaseen laborategia 7 Informatika
  • 8.
    Erroreen kudeaketa Gehienematen diren erroreak NO_DATA_FOUND (Select INTO balio gabe) TOO_MANY_ROWS (Select INTO balio bat baino gehiago) OTHERS beste agindu guztiak Gehiago daude Datubaseen laborategia 8 Informatika
  • 9.
    Programa motak Izengabeko blokeak Momentuan exekutatzen dira Azpiprogramak Prozedurak Funtzioak Datubaseen laborategia 9 Informatika
  • 10.
    Erabiltzailearekin elkarrizketa PL/SQLez dago pentsatuta erabiltzailearekin hitz egiteko DBMS_OUTPUT  Paketea PUT_LINE  Prozedura SET SERVEROUTPUT ON Datubaseen laborategia 10 Informatika
  • 11.
    Izen gabeko blokea Puntu (.) batekin bukatzen dira RUN Aginduarekin exekutatu /  . Eta RUN SAVE fitxategian gordetzeko (REPLACE) GET fitxategia kargatzeko START fitxategia kargatu eta exekutatu Datubaseen laborategia 11 Informatika