Systemy baz danych
Transkrypt
Systemy baz danych
Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie Systemy baz danych - wykład III PL/SQL podstawy Zmienne i stałe Instrukcje sterujące dr inż. Robert Perliński Interakcje SQL w PL/SQL Kursory Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wyjątki Podsumowanie Październik 2015 Źródła Systemy baz danych - wykład III 1/40 Plan wykładu Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Interakcje Instrukcje sterujące SQL w PL/SQL Kursory Wykorzystanie SQL w PL/SQL Wyjątki Kursory Podsumowanie Źródła Wyjątki Systemy baz danych - wykład III 2/40 Projekt fizyczny bazy danych Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Braki projektu fizycznego opartego wyłącznie na możliwościach SQL’a: niemożność modyfikacji danych za pośrednictwem perspektyw złożonych, Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL brak obsługi sytuacji wyjątkowych, brak obsługi zdarzeń, Kursory Wyjątki brak funkcji i procedur użytkownika, Podsumowanie brak złożonych zależności i ograniczeń integralności. Źródła Systemy baz danych - wykład III 3/40 PL/SQL Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory PL/SQL (ang. Procedural Language/Structured Query Language) język programowania będący proceduralnym rozszerzeniem SQL wprowadzonym przez firmę Oracle (oparty na języku Ada). Umożliwia wykorzystywanie konstrukcji takich jak pętle, instrukcje warunkowe, zmienne oraz tworzenie procedur, funkcji, wyzwalaczy użytkownika wspomagających konkretną realizację bazy danych. Wyjątki Podsumowanie Źródła Rozwiązanie specyficzne dla SZBD Oracle, jednakże każdy dystrybutor udostępnia swoje rozwiązania (np. PL/pgSQL w PostgreSQL), które są zbliżone do PL/SQL’a. Systemy baz danych - wykład III 4/40 Cechy PL/SQL Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Cechy PL/SQL: język proceduralny nastawiony na przetwarzanie danych, język kompilowany, język obsługujący zmienne, stałe, struktury sterujące, wyjątki, ma strukturę blokową, każda instrukcja wewnątrz bloku PL/SQL jest zakończona średnikiem, operator przypisania to := , Podsumowanie Źródła może zawierać instrukcje DML i TCL, nie może zawierać instrukcji DDL i DCL (nadawanie uprawnień). Systemy baz danych - wykład III 5/40 Bloki PL/SQL Systemy baz danych wykład III dr inż. Robert Perliński Podstawową jednostką, z której składa się program w PL/SQL jest blok, wyróżniamy: Wprowadzenie bloki anonimowe, PL/SQL podstawy bloki nazwane, Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory bloki podrzędne. Każdy blok składa się z maksymalnie trzech części: deklaracyjnej (opcjonalnie), Wyjątki Podsumowanie wykonywalnej, Źródła obsługi wyjatków (opcjonalnie). Systemy baz danych - wykład III 6/40 Struktura bloku PL/SQL Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła [DECLARE deklaracje;] BEGIN bloki_podrzedne; instrukcje; [EXCEPTION obsluga_wyjatkow;] END; Systemy baz danych - wykład III 7/40 Komentarze Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy W PL/SQL stosuje się dwa rodzaje komentarzy: jednowierszowe - rozpoczynające się od znaków -- Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL wielowierszowe - rozpoczynające się od znaków /*, a kończące */. Kursory Wyjątki Podsumowanie Źródła Systemy baz danych - wykład III 8/40 Typy danych Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące PL/SQL obsługuje wszystkie typy danych SQL, oraz posiada wiele swoich, dodatkowych typów, które możemy podzielić następująco: typy proste (BINARY INTEGER, NATURAL, BOOLEAN, POSITIVE, itd.), Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie typy złożone (RECORD, TABLE, VARRAY), typy referencyjne (REF CURSOR, REF typ obiektowy), typy definiowane przez użytkownika. Źródła Systemy baz danych - wykład III 9/40 Zmienne Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Deklaracja zmiennych: DECLARE nazwa_zmiennej typ[(rozmiar)] [NOT NULL] [{:= | DEFAULT} wartosc]; Np.: Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła DECLARE v_wiek NUMBER(3); v_plec VARCHAR2(9); v_licznik NUMBER(4) NOT NULL := 0; v_suma NUMBER(10) DEFAULT 0; Systemy baz danych - wykład III 10/40 Zmienne rekordowe Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Deklaracja zmiennych rekordowych: DECLARE TYPE nazwa_typu_rekordowego IS RECORD ( pole1 typ [inicjalizacja] [, pole2 typ [inicjalizacja] ...] ); nazwa_zmiennej typ_rekordowy; Zmienne i stałe Instrukcje sterujące Interakcje Np.: SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła DECLARE TYPE r_adres IS RECORD ( v_ulica VARCHAR2(30), v_nr_domu VARCHAR2(4), v_nr_mieszkania VARCHAR2(4) ); vr_adres r_adres; Systemy baz danych - wykład III 11/40 Stałe Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Deklaracja stałych: DECLARE nazwa_stalej CONSTANT typ[(rozmiar)] {:= | DEFAULT} wartosc; Instrukcje sterujące Interakcje SQL w PL/SQL Np.: Kursory Wyjątki Podsumowanie DECLARE c_procent CONSTANT NUMBER(2) := 10; Źródła Systemy baz danych - wykład III 12/40 %TYPE, %ROWTYPE Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Istnieje możliwość deklarowania zmiennych o typach kolumn, lub wierszy istniejących w bazie: DECLARE nazwa_zmiennej tabela.kolumna%TYPE; nazwa_z_rekordowej tabela%ROWTYPE; Instrukcje sterujące Interakcje SQL w PL/SQL Np.: Kursory Wyjątki Podsumowanie Źródła DECLARE v_nazwisko studenci.nazwisko%TYPE; vr_student studenci%ROWTYPE; Systemy baz danych - wykład III 13/40 IF Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe IF warunek THEN instrukcja; END IF; IF warunek THEN instrukcja1; ELSE instrukcja2; END IF; Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła Systemy baz danych - wykład III IF warunek1 THEN instrukcja1; ELSIF warunek2 THEN instrukcja2; ... ELSE instrukcja_n; END IF; 14/40 CASE Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe CASE wyrazenie WHEN wyrazenie1 THEN instrukcja1; WHEN wyrazenie2 THEN instrukcja2; ... [ELSE instrukcja_n]; END CASE; Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła Systemy baz danych - wykład III CASE WHEN warunek1 THEN instrukcja1; WHEN warunek2 THEN instrukcja2; ... [ELSE instrukcja_n]; END CASE; 15/40 Pętle Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy LOOP instrukcje; [IF warunek THEN EXIT; END IF;] [EXIT WHEN warunek;] END LOOP; Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła Systemy baz danych - wykład III WHILE warunek LOOP instrukcje; END LOOP; FOR licznik IN [REVERSE] min..max LOOP instrukcje; END LOOP; 16/40 Instrukcja NULL Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki BEGIN IF warunek THEN instrukcje; ELSE NULL; END IF; END; Podsumowanie Źródła Systemy baz danych - wykład III 17/40 Interakcje Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory pobieranie danych (zmienne podstawienia): v_nazwisko := &nazwisko; wyprowadzenie danych (włączona zmienna środowiskowa SERVEROUTPUT ON): dbms_output.put_line(tekst); dbms_output.new_line; dbms_output.put_line( ’Hello’||CHR(10)||’ World’); Wyjątki Podsumowanie Źródła wyczyszczenie ekranu (nie działa w PL/SQL): CLEAR SCREEN; CL SCR; -- skrócona forma Systemy baz danych - wykład III 18/40 SQL w PL/SQL I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Wewnątrz bloków PL/SQL można zagnieździć niektóre polecenia SQL: DML: INSERT, UPDATE, DELETE, specyficzną formę SELECT, TCL: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION, LOCK. Instrukcje sterujące Interakcje Postać klauzuli SELECT: SQL w PL/SQL Kursory Wyjątki SELECT lista_wyrazen INTO lista_zmiennych FROM lista_relacji...; Podsumowanie Źródła SELECT lista_wyrazen INTO zmienna_rekordowa FROM lista_relacji...; Systemy baz danych - wykład III 19/40 SQL w PL/SQL II Systemy baz danych wykład III dr inż. Robert Perliński Postać INSERT, UPDATE i DELETE pozostaje niezmieniona, dochodzi opcjonalna klauzula RETURNING wyrazenie INTO zmienna: Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje INSERT INTO dzialy (id_dzialu, siedziba) VALUES (90, ’HONOLULU’) RETURNING id_dzialu INTO v_id; SQL w PL/SQL Kursory Istnieje możliwość wykorzystania zmiennych rekordowych: Wyjątki Podsumowanie Źródła INSERT INTO tabela VALUES zmienna_rekordowa; UPDATE tabela SET row = zmienna_rekordowa; Systemy baz danych - wykład III 20/40 Kursor I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Kursor - przestrzeń robocza posiadająca nazwę, pozwalająca składować i udostępniać wynik zapytania SQL. Wyróżniamy kursory jawne (deklarowane przez programistę) i niejawne o nazwie SQL (tworzone przez system dla każdej instrukcji DML i DDL). Instrukcje sterujące Interakcje SQL w PL/SQL Obsługa kursora jawnego: Kursory deklaracja, Wyjątki otwarcie, Podsumowanie Źródła pobranie danych, zamknięcie. Systemy baz danych - wykład III 21/40 Deklaracja kursora I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Deklaracja kursora: CURSOR nazwa [(parametr1 typ [:=|DEFAULT wartosc1] [, parametr2...]...)] [RETURN typ] IS SELECT...; Przykłady: Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki CURSOR c_szefowie IS SELECT DISTINCT kierownik FROM pracownicy; CURSOR c_dzial (p_id NUMBER) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; Podsumowanie Źródła CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; CURSOR c_pracownicy RETURN pracownicy%ROWTYPE; Systemy baz danych - wykład III 22/40 Otwarcie kursora Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła OPEN nazwa (lista_parametrow); Np.: DECLARE CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; ... BEGIN OPEN c_dzial(20); ... END; Systemy baz danych - wykład III 23/40 Pobranie danych Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła FETCH nazwa INTO {lista_zmiennych|zmienna_rekordowa}; Np.: DECLARE CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; vr_pracownik pracownicy%ROWTYPE; ... BEGIN OPEN c_dzial(20); FETCH c_dzial INTO v_pracownik; ... END; Systemy baz danych - wykład III 24/40 Zamknięcie kursora Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła CLOSE nazwa; Np.: DECLARE CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; vr_pracownik pracownicy%ROWTYPE; ... BEGIN OPEN c_dzial(20); FETCH c_dzial INTO v_pracownik; CLOSE c_dzial; ... END; Systemy baz danych - wykład III 25/40 Atrybuty kursora Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Każdy kursor posiada atrybuty: %ISOPEN - zwraca prawdę jeżeli kursor jest otwarty (dla niejawnego zawsze FALSE), %FOUND - zwraca prawdę jeżeli ostatnie pobranie (FETCH) lub modyfikacja danych powiodła się, Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła %NOTFOUND - zwraca prawdę jeżeli ostatnie pobranie lub modyfikacja danych nie powiodła się, %ROWCOUNT - zwraca liczbę wierszy pobranych lub zmodyfikowanych od momentu otwarcia kursora. Systemy baz danych - wykład III 26/40 Pętle obsługujące kursor I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła DECLARE CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; vr_pracownik pracownicy%ROWTYPE; BEGIN OPEN c_dzial(20); LOOP FETCH c_dzial INTO vr_pracownik; IF c_dzial%NOTFOUND THEN EXIT; END IF; dbms_output.put_line(vr_pracownik.nazwisko); END LOOP; dbms_output.put_line(’Wybrano ’|| c_dzial%ROWCOUNT||’ wierszy.’); CLOSE c_dzial; END; Systemy baz danych - wykład III 27/40 Pętle obsługujące kursor II Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie DECLARE CURSOR c_dzial (p_id NUMBER := 10) IS SELECT * FROM pracownicy WHERE id_dzialu=p_id; BEGIN FOR vr_pracownik IN c_dzial(20) LOOP dbms_output.put_line(vr_pracownik.nazwisko); END LOOP; END; Źródła Systemy baz danych - wykład III 28/40 Pętle obsługujące kursor III Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie DECLARE v_id pracownicy.id_dzialu%TYPE := &id; BEGIN FOR vr_pracownik IN (SELECT * FROM pracownicy WHERE id_dzialu = v_id ) LOOP dbms_output.put_line(vr_pracownik.nazwisko); END LOOP; END; Źródła Systemy baz danych - wykład III 29/40 Wyjątek Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Wyjątek - zdarzenie (błąd lub ostrzeżenie), które może wystąpić w czasie wykonywania bloku PL/SQL. Zdarzenie to powoduje przerwanie normalnego toku działania programu i przeniesienie do sekcji EXCEPTION, w celu wykonania instrukcji przewidzianych do obsługi danej sytuacji. Wyróżniamy wyjątki predefiniowane oraz użytkownika. Podsumowanie Źródła Systemy baz danych - wykład III 30/40 Wyjątki predefiniowane I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Niektóre wyjątki zgłaszane automatycznie przez system: CASE_NOT_FOUND - żadna z podanych klazul WHEN nie spełnia warunku, a nie przewidziano sekcji domyślnej ELSE. CURSOR_ALREADY_OPEN - próba otwarcia otwartego kursora. DUP_VAL_ON_INDEX - próba naruszenia ograniczenia unikalnej wartości. INVALID_CURSOR - nielegalna operacja na kursorze. Wyjątki INVALID_NUMBER - błąd wartości. Podsumowanie LOGIN_DENIED - nieudana próba połączenia do bazy. Źródła NO_DATA_FOUND - instrukcja SELECT nie zwróciła żadnego wiersza. NOT_LOGGED_ON - nie połączono się z bazą. Systemy baz danych - wykład III 31/40 Wyjątki predefiniowane II Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje TIMEOUT_ON_RESOURCE - przekroczenie czasu oczekiwania na zwolnienie zasobu. TOO_MANY_ROWS - instrukcja SELECT zwróciła więcej niż jeden wiersz. VALUE_ERROR - błąd wartości. ZERO_DIVIDE - próba dzielenia przez zero. SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła Identyfikacja błędu: SQLERRM - opis wyjątku, SQLCODE - numer wyjątku. Systemy baz danych - wykład III 32/40 Korzystanie z wyjątków użytkownika I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie deklaracja nazwa_wyjatku EXCEPTION; podniesienie wyjątku RAISE nazwa_wyjatku; PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła przechwycenie w sekcji obsługi wyjątków. EXCEPTION WHEN wyjatek1 THEN instrukcje1; WHEN wyjatek2 THEN instrukcje2; ... WHEN OTHERS THEN instrukcje_n; Systemy baz danych - wykład III 33/40 Korzystanie z wyjątków użytkownika II Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła DECLARE e_zla_wartosc EXCEPTION; ... BEGIN ... IF v_id = 0 THEN RAISE e_zla_wartosc; END IF; ... EXCEPTION WHEN e_zla_wartosc THEN dbms_output.put_line(’Bledna wartosc identyfikatora.’); END; Systemy baz danych - wykład III 34/40 Propagacja wyjątków I Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła BEGIN ... BEGIN ... IF v_id = 0 THEN RAISE e_zla_wartosc; END IF; ... EXCEPTION WHEN e_zla_wartosc THEN dbms_output.put_line(’Bledna wartosc identyfikatora.’); END; ... EXCEPTION ... END; Systemy baz danych - wykład III 35/40 Propagacja wyjątków II Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła BEGIN ... BEGIN ... IF v_id = 0 THEN RAISE e_zla_wartosc; END IF; ... EXCEPTION WHEN TOO_MANY_ROWS THEN dbms_output.put_line(’Za duzo wartosci.’); END; ... EXCEPTION WHEN e_zla_wartosc THEN dbms_output.put_line(’Bledna wartosc ident...’); END; Systemy baz danych - wykład III 36/40 Propagacja wyjątków III Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła BEGIN ... BEGIN ... IF v_id = 0 THEN RAISE e_zla_wartosc; END IF; ... EXCEPTION WHEN TOO_MANY_ROWS THEN dbms_output.put_line(’Za duzo wartosci.’); END; ... EXCEPTION WHEN VALUE_ERROR THEN dbms_output.put_line(’Blad konwersji.’); END; Systemy baz danych - wykład III 37/40 Raise application error Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy Zmienne i stałe Instrukcje sterujące Interakcje Wywołania procedury Raise_application_error pozwala przerwać działanie programu i wyprowadzić na ekran informacje o błędzie. Składnia: Raise_application_error(numer_bledu, opis); Numer błedu zawiera się w przedziale od -20000 do -20999, a opis może zajmować 2048 bajtów. Np.: SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła IF v_id = 0 THEN Raise_application_error(-20002, ’Błędny identyfikator’); ELSE ... END IF; Systemy baz danych - wykład III 38/40 Podsumowanie Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy PL/SQL umożliwia: korzystanie ze zmiennych, stałych, instrukcji sterujących, Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki przetwarzanie sekwencyjne zorientowane na dane, obsługę sytuacji wyjątkowych, i wiele innych, o czym na następnym wykładzie... Podsumowanie Źródła Systemy baz danych - wykład III 39/40 Źródła Systemy baz danych wykład III dr inż. Robert Perliński Wprowadzenie PL/SQL podstawy W wykładzie wykorzystano materiały: http://www.oracle.com/technology/tech/pl_sql/ index.html M. Lentner, Oracle 9i Kompletny podręcznik użytkownika, PJWSTK - W-wa, 2003 Zmienne i stałe Instrukcje sterujące Interakcje SQL w PL/SQL Kursory Wyjątki Podsumowanie Źródła http://wazniak.mimuw.edu.pl/index.php?title= Bazy_danych http://www.ploug.org.pl/showhtml.php?file= szkola/szkola_9/materialy Garcia-Molina, Ullman, Widom: Implementacja systemów baz danych, WNT 2003 Systemy baz danych - wykład III 40/40