Język PL/SQL Pakiety podprogramów

Podobne dokumenty
Pakiety podprogramów Dynamiczny SQL

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

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

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

Procedury i funkcje składowane

Oracle PL/SQL. Paweł Rajba.

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

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

Podprogramy. Rozdział 11 Procedury i funkcje składowane

Plan wykładu BAZY DANYCH II WYKŁAD 7. Pakiety. Zalety pakietów

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

Procedury Funkcje Pakiety. Tworzenie procedury

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

Wykład 9. Pakiety w języku PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL

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

ZASTOSOWANIE PROCEDUR, FUNKCJI I PAKIETÓW

15. Funkcje i procedury składowane PL/SQL

Zaawansowane bazy danych i hurtownie danych semestr I

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

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

Oracle PL/SQL. Paweł Rajba.

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

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"

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

Tworzenie raportów XML Publisher przy użyciu Data Templates

Oracle11g: Programowanie w PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL

Bloki anonimowe w PL/SQL

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

Oracle PL/SQL. Paweł Rajba.

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

Oracle PL/SQL. Paweł Rajba.

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

Oracle10g: Programowanie w PL/SQL

1. Wyzwalacze BD (ang. triggers)

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

BAZA DANYCH SIECI HOTELI

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

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

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL

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

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

Język PL/SQL. Rozdział 3. Obsługa błędów wykonania Wyjątki predefiniowane i użytkownika, zgłaszanie i obsługa wyjątków.

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

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

BAZY DANYCH W APLIKACJACH SIECIOWYCH

Plan wykładu BAZY DANYCH II WYKŁAD 6. Co to są wyjątki? Co to są wyjątki?

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Wstęp do programowania 2

Hurtownia Świętego Mikołaja projekt bazy danych

Obiektowe bazy danych

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

Bazy danych, 4. wiczenia

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

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

Składowane procedury i funkcje

Obowiązuje od wersji

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

Oracle PL/SQL. Paweł Rajba.

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

Indeksy. Indeks typu B drzewo

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

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

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

Modelowanie wymiarów

Model semistrukturalny

Technologie baz danych WYKŁAD 7: Wyjątki

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Oracle PL/SQL. Paweł Rajba.

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

Oracle PL/SQL. Paweł Rajba.

Instrukcja instalacji aplikacji PlanSoft.org

OBSŁUGA WYJĄTKÓW. Mechanizm języka PL/SQL. Wyjątki:

W PostgreSQL mamy do dyspozycji nie tylko funkcje wbudowane, ale również możemy tworzyć własne. Są one zapisywane w tabeli systemowej pg_proc.

Zarządzanie kontami użytkowników w i uprawnieniami

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

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

SYSTEM INFORMATYCZNY KS-SEW

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Cele. Definiowanie wyzwalaczy

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

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

Struktura bazy danych

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Wyzwalacze TWORZENIE WYZWALACZY

Ada-95. Dariusz Wawrzyniak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Bloki anonimowe w PL/SQL

Transkrypt:

Język PL/SQL Pakiety podprogramów Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora) 1

Pakiety Pakiet (ang. package) grupuje powiązane logicznie typy, procedury, funkcje, zmienne i kursory. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą się deklaracje typów, zmiennych, stałych, kursorów, wyjątków i podprogramów. W ciele mieści się implementacja specyfikacji. 2

Cele stosowania pakietów Cechy: modularność ukrycie informacji użytkownikowi jest udostępniana tylko specyfikacja pakietu (interfejs), natomiast implementacja procedur i funkcji jest niewidoczna zwiększenie funkcjonalności zmienne zadeklarowane w pakietach istnieją przez całą sesję użytkownika; dzięki temu mogą one służyć do wzajemnej komunikacji różnych procesów zwiększenie szybkości działania przy pierwszym odwołaniu do pakietu cała jego zawartość jest ładowana do pamięci współdzielenie przez wielu użytkowników możliwość zmiany implementacji pakietu bez konieczności rekompilacji modułów zależnych 3

Definiowanie pakietu CREATE [OR REPLACE] PACKAGE nazwa_pakietu IS specyfikacja deklaracje stałych, zmiennych, kursorów dostępnych na zewnątrz pakietu deklaracje procedur i funkcji END [nazwa_pakietu]; CREATE [OR REPLACE] PACKAGE BODY nazwa_pakietu IS ciało deklaracje stałych, zmiennych, kursorów dostępnych wewnątrz pakietu definicje procedur i funkcji END [nazwa_pakietu]; 4

Inicjalizacja pakietu W momencie pierwszego odwołania do dowolnego elementu z pakietu zawartość całego pakietu zostaje załadowana do bufora. Zmienne i kursory mogą być inicjalizowane w części inicjalizacyjnej pakietu. CREATE OR REPLACE PACKAGE BODY xyz IS l_name VARCHAR2(30), l_date_of_birth DATE, FUNCTION x(...) RETURN...;... BEGIN l_name := 'Kowalski'; l_date_of_birth := SYSDATE;... END xyz; 5

Przykład pakietu CREATE OR REPLACE PACKAGE kadry IS PROCEDURE nowy_pracownik(p_nazwisko VARCHAR2); FUNCTION podatek(p_id_prac NUMBER) RETURN NUMBER; bledny_pracownik EXCEPTION; END kadry; CREATE OR REPLACE PACKAGE BODY kadry IS v_liczba_pracownikow NUMBER := 0; PROCEDURE nowy_pracownik(...) IS BEGIN... END nowy_pracownik; FUNCTION podatek(...) RETURN NUMBER IS BEGIN... END podatek; END kadry; 6

Wywołanie procedury lub funkcji pakietu Zdefiniowaną w pakiecie procedurę lub funkcję wywołujemy poprzedzając jej nazwę nazwą pakietu, np. SQL> EXECUTE kadry.usun_pracownika(230) SQL> SELECT kadry.zl_na_usd(placa_pod) FROM pracownicy; Kompilowanie pakietu ALTER PACKAGE nazwa COMPILE PACKAGE PACKAGE BODY; Usuwanie procedury, funkcji, pakietu DROP PACKAGE PACKAGE BODY nazwa; 7

Pragmy Pragmy (pseudoinstrukcje) to dyrektywy zawierające wskazówki dla kompilatora przetwarzane na etapie kompilacji. EXCEPTION_INIT: pozwala na przypisanie nazwanego wyjątku do błędu Oracle RESTRICT_REFERENCES: potwierdza i weryfikuje czystość funkcji, wymusza sprawdzenie czystości funkcji w stosunku do informacji podanych na etapie kompilacji (tylko w wersjach wcześniejszych od Oracle8i). Użycie: PRAGMA RESTRICT_REFERENCES (nazwa_funkcji, poziom_czystości) gdzie poziom czystości to: RNDS, RNPS Reads No Database/Package State WNDS, WNPS Writes No Database/Package State TRUST brak kontroli czystości funkcji AUTONOMOUS_TRANSACTION: pozwala na wykonanie podprogramu (procedury lub funkcji) w ramach oddzielnej transakcji 8

Przykład wykorzystania pragm CREATE OR REPLACE PACKAGE place AS FUNCTION podatek (p_id_prac NUMBER) RETURN NUMBER; PRAGMA RESTRICT_REFERENCES(podatek, WNDS, RNDS, WNPS); deadlock_detected EXCEPTION; END; CREATE OR REPLACE PACKAGE BODY place AS FUNCTION podatek (p_id_prac NUMBER) RETURN NUMBER IS PRAGMA AUTONOMOUS_TRANSACTION; PRAGMA EXCEPTION_INIT(deadlock_detected, -60); BEGIN -- ciało funkcji EXCEPTION WHEN deadlock_detected THEN END podatek;... -- obsługa błędu 9

Słownik bazy danych USER_OBJECTS - informacja o pakietach w schemacie użytkownika SELECT object_name, object_type, status FROM user_objects WHERE object_type IN ('PACKAGE', 'PACKAGE BODY'); USER_SOURCE - kod źródłowy pakietów użytkownika SELECT text FROM user_source WHERE name = 'PLACE' AND object_type = 'PACKAGE BODY' ORDER BY line; 10