Bazy danych, 4. wiczenia

Podobne dokumenty
Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Zaawansowane bazy danych i hurtownie danych semestr I

PODSTAWY BAZ DANYCH 13. PL/SQL

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

BAZY DANYCH W APLIKACJACH SIECIOWYCH

Język PL/SQL Procedury i funkcje składowane

Oracle PL/SQL. Paweł Rajba.

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

PL/SQL. Zaawansowane tematy PL/SQL

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Procedury i funkcje składowane

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

1. Wyzwalacze BD (ang. triggers)

Wyzwalacze TWORZENIE WYZWALACZY

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Hurtownia Świętego Mikołaja projekt bazy danych

Cele. Definiowanie wyzwalaczy

PL/SQL. Zaawansowane tematy PL/SQL

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

BAZA DANYCH SIECI HOTELI

Zaawansowane bazy danych i hurtownie danych semestr I, st. niestacjonarne

Pakiety podprogramów Dynamiczny SQL

Administracja i programowanie pod Microsoft SQL Server 2000

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze

CREATE TABLE autorzy ( id_autora SERIAL PRIMARY KEY, imie TEXT, nazwisko TEXT );

Oracle PL/SQL. Paweł Rajba.

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Indeksy. Indeks typu B drzewo

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Język PL/SQL. Rozdział 4. Procedury i funkcje składowane

15. Funkcje i procedury składowane PL/SQL

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

SQL 4 Structured Query Lenguage

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Składowane procedury i funkcje

Wyzwalacze (triggery) Przykład

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

SQL :: Data Definition Language

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Język PL/SQL Pakiety podprogramów

Bloki anonimowe w PL/SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Ćwiczenie 13 PL/SQL. Język PL/SQL procedury, funkcje, pakiety, wyzwalacze

1. Dodatkowe informacje. 2. Czynnoci wstpne. 3. Zadania

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

Procedury Funkcje Pakiety. Tworzenie procedury

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Oracle PL/SQL. Paweł Rajba.

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Bazy danych. Projekt prostej biblioteki. 26 stycznia Hubert Anisimowicz,

Aspekty aktywne baz danych

Koncepcja automatycznego tworzenia modu³u auditingu w aplikacjach u ytkowych

Uprawnienia, role, synonimy

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

Tabele wykorzystywane w przykładach

CREATE USER

Systemowe aspekty baz

Bazy danych 11. SQL Procedury składowane, kursory i wyzwalacze

Bazy danych 6. Klucze obce. P. F. Góra

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Projekt-bazy danych Poczta

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

1. ELEMENTY JĘZYKA PL/SQL

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Oracle PL/SQL. Paweł Rajba.

Język PL/SQL. Rozdział 2. Kursory

Projektowanie systemów baz danych

Oracle11g: Programowanie w PL/SQL

Bloki anonimowe w PL/SQL

Monika Sychla Daniel Smolarek Projekt bazy danych

Instrukcja instalacji aplikacji PlanSoft.org

Bazy danych 8. Widoki i wyzwalacze. P. F. Góra

Systemowe aspekty baz danych

Transkrypt:

Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; tab t_tab; Operacje na tabelach: tab(i) tab.exists(i) tab.count tab.first tab.last tab.prior(i) tab.next(i) tab.delete tab.delete(i) tab.delete(i,j) -- i-ty element -- czy i-ty jest okre±lony -- liczba elementów -- pierwszy element tabeli -- ostatni element tabeli -- poprzednik i-tego -- nastepnik i-tego -- usu«zawarto± tabeli -- usu«i-ty element -- usu«elementy od i do j 3 Kursory sªu» ce do zmiany danych CURSOR nazwakursora IS zapytaniesql FOR UPDATE OF lista_kolumn; 1

Ró»ni si od zwykªego kursora zakªadaniem blokady na modykowane pola. Przykªad: CURSOR c_ksiazki IS SELECT * FROM ksiazki FOR UPDATE OF tytul; FOR k IN c_ksiazki LOOP dbms_output.put_line('ksiazka ' k.nr_ew); UPDATE ksiazki SET tytul=tytul '_a' WHERE nr_ew=k.nr_ew; END LOOP; END; / 4 Procedury PROCEDURE nazwa [(parametr 1[, parametr 2, ])] IS deklaracje zmiennych tre± procedury [EXCEPTION obsªuga wyj tków] END [nazwa]; Denicja parametry ma nast puj c posta : nazwa parametru [IN OUT [NOCOPY] IN OUT [NOCOPY]] typ [{:= DEFAULT} wyra»enie] IN przekazanie parametru przez warto±, OUT parametr musi by zmienn, zachowuje si jak niezainicjalizowana zmienna (pocz tkowo przechowuje pust warto± ), IN OUT parametr musi by zmienn, zachowuje si jak zainicjalizowana zmienna, NOCOPY przekazywanie parametrów przez referencje. Komunikaty o bª dach kompilacji mo»na zobaczy wykonuj c polecenie: show errors procedure nazwa; Aby wywoªa procedur z poziomu sqlplusa, nale»y wykona polecenie: execute nazwaprocedury(warto± 1,warto± 2); execute nazwaprocedury(nazwa1 => warto± 1,nazwa2 => warto± 2); execute nazwaprocedury; /* je±li procedura nie ma parametrów */ W niektórych przypadkach mo»na najpierw zadeklarowa funkcj, a dopiero pó¹niej poda jej tre±, np. PROCEDURE nazwa (.. definicja parametrów.. ); 2

Zgªaszanie bª dów, dziaªanie programów mo»na przerwa za pomoc funkcji raise_application_error, np. RAISE_APPLICATION_ERROR(kod,komunikat); RAISE_APPLICATION_ERROR(-20000,'bardzo wa»ny bª d'); Kody od -20999..-20000 s zarezerwowane dla u»ytkowników. 5 Funkcje FUNCTION nazwa [(parametr 1,[ parametr 2, ])] RETURN typ IS [deklaracje zmiennych] tre± [EXCEPTION obsªuga wyj tków] END [nazwa]; W tre±ci funkcji nale»y u»y polecenia RETURN, które zwraca wynik i ko«czy dziaªanie funkcji (dokªadnie tak jak w C/C++). Komunikaty o bª dach kompilacji mo»na zobaczy wykonuj c polecenie: show errors function nazwa; Informacje o procedurach i funkcjach mo»na otrzyma za pomoc polece«: DESCRIBE PROCEDURE nazwa DESCRIBE FUNCTION nazwa 6 Pakiety CREATE PACKAGE nazwa AS PROCEDURE procedura1 (); PROCEDURE precedura2; END emp_actions; CREATE PACKAGE BODY nazwa AS PROCEDURE procedura1 () IS END procedura1; PROCEDURE procedura2 IS END procedura2; END nazwa; 3

7 Wyzwalacze Wyzwalacze to fragmenty programów wykonywane w przypadku zaj±cia okre- ±lonych operacji na bazie danych. Wyzwalacze s wykonywane automatycznie przez baz danych. Do czego mog sªu»y wyzwalacze: kontroli poprawno±ci danych, logowania zmian na bazie, sprawdzania uprawnie«do wykonywania poszczególnych operacji. CREATE [OR REPLACE] TRIGGER nazwa {BEFORE AFTER} {INSERT DELETE UPDATE} ON nazwa tabeli [REFERENCING [NEW AS nazwa_nowego_wiersza] [OLD AS nazwa_starego_wiersza]] [FOR EACH ROW [WHEN (warunek)]] tre± wyzwalacza Wyzwalacze mog by uruchamiane: jednokrotnie dla ka»dego wiersza (klauzula FOR EACH ROW), jednokrotnie dla ka»dego polecenia, Kolejno± wykonywania wyzwalaczy: przed instrukcj, przed pierwszym operowanym wierszem po pierwszym wierszu przed ostatnim wierszem po ostatnim wierszu po instrukcji W wyzwalaczach nie wolno u»ywa operacji zwi zanych z transakcjami (COM- MIT, ROLLBACK). Po zdeniowaniu wyzwalacza, baza mo»e stwierdzi,»e kompilacja si nie powiodªa. Komunikaty o bª dach mo»na zobaczy wykonuj c polecenie: show errors trigger nazwawyzwalacza; Inne polecenia dotycz ce wyzwalaczy: select trigger_name from user_triggers lista zdeniowanych wyzwalaczy, select trigger_type, triggering_event, table_name, referencing_names, trigger_body from user_triggers where trigger_name = 'bazwa' dokªadne informacje konkretnym wyzwalaczu, drop trigger nazwawyzwalacza usuwanie, 4

alter trigger nazwawyzwalacza {disable enable} wyª czenie/wª czenie wyzwalacza. Odwoªania do warto±ci zmienianych wierszy: :OLD.nazwa_pola warto±ci przed zmian /usuni ciem, :NEW.nazwa_pola warto±ci po zmianie/wstawieniu, Mo»na deniowa jeden wyzwalacz dla wielu zdarze«, np. CREATE OR REPLACE TRIGGER TestowyWyzwalacz BEFOR INSERT OR UPDATE OR DELETE ON tabela FOR EACH ROW IF INSERTING THEN ELSIF DELETING THEN ELSIF UPDATING THEN END IF; END; 8 SQL - rózno±ci Widoki: CREATE VIEW nazwa AS zapytanie_sql; Sekwencje: CREATE SEQUENCE nazwa [ INCREMENT BY warto± ] [ START WITH warto± ] ; SELECT nazwa_sekwencji.nextval FROM dual; /* zwraca warto± + zwi ksza licznik */ SELECT nazwa_sekwencji.currval FROM dual; /* zwraca warto± + bez zwi kszania licznika */ 5