plik


ÿþDeclare Deklaracja 4 zmiennych. Jednej typu x number; rzeczywistego, jednej typu caBkowitego, jednej y integer; typu tekstowego i jednej typu date. z varchar2(50); d date; begin null; end; Declare Dwa sposoby przypisania warto[ci do zmiennej. x integer:=10; begin null; end; declare x integer; begin x:=10; end; Begin Wypisywanie komunikatów na konsol dbms_output.put_line('hello world'); end; Begin Ró|ne postacie ptli for (wykonujcej si for x in 1..10 loop okre[lon ilo[ razy). dbms_output.put_line(x); end loop; end; Begin for x in reverse 1..10 loop dbms_output.put_line(x); end loop; end; Begin for x in 20..40 loop dbms_output.put_line(x); end loop; end; declare st integer:=10; so integer:=20; Begin for x in st..so loop dbms_output.put_line(x); end loop; end; 1/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) Declare Ptla exit when. Taka ptla wykonuje si tak x integer; dBugo , a| nastpi warunek okre[lony w exit begin when. x:=1; loop dbms_output.put_line(x); exit when x=20; x:=x+1; end loop; end; Declare Taka ptla wykonuje si tak dBugo, jak dBugo x integer:=1; prawdziwy jest warunek okre[lny w while. begin while(x<=10) loop dbms_output.put_line(x); x:=x+1; end loop; end; Declare Blok warunkowy z IF; masa number:=90; wzrost number:=1.78; bmi number; Begin bmi:=masa/power(wzrost,2); if bmi<18 then dbms_output.put_line('niedowaga'); elsif bmi<=24.99 then dbms_output.put_line('ok'); else dbms_output.put_line('nadwaga'); end if; end; 2/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) Declare Update tabeli z u|yciem dynamicznych podwyzka number:=300; warto[ci. departament integer:=90; begin update employees set salary=salary+podwyzka where department_id=departament; commit; end; Declare ZaBadowanie warto[ci z jednego wiersza do srednia number; zmiennych. ilosc_pracownikow integer; begin select avg(salary), count(*) into srednia, ilosc_pracownikow from employees; end; declare Wykorzystanie zmiennej typu wierszowego. pracownik hr.employees%rowtype; Przypisanie bezpo[rednie. begin pracownik.last_name:='Kowalski'; pracownik.first_name:='Jan'; dbms_output.put_line(pracownik.last_name||' '||pracownik.first_name); end; Wykorzystanie zmiennej typu wierszowego. declare ZaBadowanie danych z bazy. pracownik hr.employees%rowtype; begin select * into pracownik from hr.employees where employee_id=102; dbms_output.put_line(pracownik.last_name); end; Wykorzystanie wBasnego typu zBo|onego z declare zaBadowaniem danych z bazy. type raportowy is record( srednia number, liczba_prac integer, maksi number ); raport1 raportowy; begin select avg(salary), count(*) , max(salary) into raport1 from hr.employees; 3/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) dbms_output.put_line(raport1.srednia); end; declare U|ycie kursora do pobrania wicej ni| jednego cursor kursor is select last_name, first_name wiersza z bazy from hr.employees; begin for wiersz in kursor loop dbms_output.put_line(wiersz.last_name); end loop; end; Tworzenie procedury skBadowanej i dwa create or replace procedure sposoby jej wywoBania wyswietl_pracownika is nr_pracownika integer:=190; pracownik hr.employees%rowtype; begin select * into pracownik from hr.employees where employee_id=nr_pracownika; dbms_output.put_line(pracownik.last_name||' '||pracownik.first_name); end; begin wyswietl_pracownika; end; execute wyswietl_pracownika; show errors; Wy[wietlanie bBdów kompilacji drop procedure wyswietl_pracownika; Kasowanie procedury create or replace procedure Tworzenie procedury z parametrem i jej wyswietl_pracownika(x integer) is wywoBanie. pracownik hr.employees%rowtype; begin select * into pracownik from hr.employees where employee_id=x; dbms_output.put_line(pracownik.last_name||' '||pracownik.first_name); end; begin wyswietl_pracownika(172); 4/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) end; begin ObsBuga wszelakich wyjtków dbms_output.put_line(10/0); exception when others then dbms_output.put_line('wystapil blad '|| sqlerrm); end; ObsBuga ró|na dla ró|nych wyjtków begin dbms_output.put_line(10/'lubie pierogi'); dbms_output.put_line(10/0); exception when zero_divide then dbms_output.put_line('wystapil blad '|| sqlerrm); when others then null; end; begin ObsBuga z u|yciem bloków zagnie|d|onych for x in -10..10 loop begin dbms_output.put_line(x||' '||1/x); exception when zero_divide then dbms_output.put_line('przez 0 dzieli tylko Chuck Norris'); end; end loop; end; create or replace function dawaj10 return Prosta funkcja number is begin dbms_output.put_line('cos robi...'); return 10; end; select dawaj10 from dual; Sposoby wywoBania funkcji declare x number; 5/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) begin x:=dawaj10; end; begin dbms_output.put_line(dawaj10); end; Wykorzystanie funkcji create or replace function dawajsrednia return number is wynik number; begin select avg(salary) into wynik from hr.employees; return wynik; end; select dawajsrednia from dual; select * from hr.employees where salary>dawajsrednia; Funkcja sparametryzowana i sposoby jej create or replace function wywoBania sredniadepartamentu(nr number) return number is wynik number; begin select avg(salary) into wynik from hr.employees where department_id=nr; return wynik; end; select sredniadepartamentu(90) from dual; 6/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) CREATE OR REPLACE PACKAGE NagBówek pakietu RAPORTOWANIE IS PROCEDURE RAPORT_PLACOWY; FUNCTION SREDNIA RETURN NUMBER; FUNCTION SREDNIA(NR INTEGER) RETURN NUMBER; END; create or replace package body raportowanie Body pakietu is PROCEDURE UTAJNIONA IS BEGIN dbms_output.put_line('najlepsze kasztany!'); END; PROCEDURE RAPORT_PLACOWY IS BEGIN utajniona; DBMS_OUTPUT.PUT_LINE('WYKONUJ E RAPORT...'); END; FUNCTION SREDNIA RETURN NUMBER IS BEGIN RETURN 6000; END; FUNCTION SREDNIA(NR INTEGER) RETURN NUMBER IS BEGIN RETURN 4543*NR/10; END; end; Wyzwalacz uruchamiajcy si w zwizku ze create or replace trigger wyzw1 zdarzeniem update after update on hr.employees declare 7/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) x number; begin dbms_output.put_line('ktos zmienil liste pracownikow!'); end; create or replace trigger wyzw1 Wyzwalacz uruchamiajcy si w zwizku ze after update or insert or delete on zdarzeniami update , insert i delete hr.employees declare x number; begin dbms_output.put_line('ktos zmienil liste pracownikow!'); end; create or replace trigger wyzw1 Wykorzystanie zmiennych w wyzwalaczach i after update or insert or delete on predykatów takich jak :updating, inserting, hr.employees deleting declare x number; begin dbms_output.put_line('cos sie stalo ....'); if updating then dbms_output.put_line('to byl update'); end if; end; Wyzwalacz wierszowy, uruchamiajcy si dla create or replace trigger podwyzkowicz ka|dego wiersza osobno after update on hr.employees for each row begin if :new.salary>:old.salary then dbms_output.put_line('to byla podwyzka dla Pana/Pani '||:new.last_name); else dbms_output.put_line('to byla obnizka lub brak zmian dla Pana/Pani '||:new.last_name); end if; end; Zmiana danych w  locie przy u|yciu create or replace trigger dobryszef wyzwalacza before update on hr.employees for each row when(new.salary>old.salary) begin :new.last_name:=:new.last_name||' to sier[ciuch '; end; 8/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl) create or replace trigger dobryszef Warunek na poziomie uruchomienia before update on hr.employees for each row when(new.salary>old.salary) begin :new.last_name:=:new.last_name||' to sier[ciuch '; end; 9/9 Cheatsheet PL/SQL BezpBatne materiaBy edukacyjne od JSystems (www.jsystems.pl)

Wyszukiwarka

Podobne podstrony:
Raine Cheats
cheats
Assassins Creed Cheats
cheatsheet SQL
les08 plsql whylearnit
Google Analytics Cheatsheet
cheatsheet?ministracja
plsql
django 1 5 cheatsheet

więcej podobnych podstron