Oracle PLSQL Pakiety i Funkcje - Leksykon Kieszonkowy.pdf

(321 KB) Pobierz
Leksykon Kieszonkowy Oracle PLSQL Pakiety i Funkcje
Oracle PL/SQL Pakiety i funkcje
Leksykon kieszonkowy
708526840.002.png
Niniejszy leksykon, to podręczne źródło informacji na temat większości
wbudowanych pakietów i funkcji stworzonych przez firmę Oracle Corporation.
Są w nim zawarte zwięzłe opisy składni następujących elementów:
• wbudowanych pakietów;
• wbudowanych funkcji;
• dyrektyw pragma RESTRICT REFERENCES dla pakietów;
• pozostałych elementów (np. stałe, wyjątki itp.) zdefiniowanych na potrzeby
pakietów.
ChociaŜ leksykon ten nie zawiera opisu kaŜdego z pakietów czy funkcji, to
znajdują się tu wszystkie dodatki, jakie są najczęściej wykorzystywane przez
programistów PL/SQL.
UWAGA
Gdy pakiet, program lub funkcja jest dostępna jedynie w określonej wersji
systemu Oracle (np. Oracle8), jest to zaznaczone w tekście.
Celem leksykonu jest ułatwienie wyszukania składni definicji określonego
wbudowanego dodatku. Nie jest to podręcznik uŜytkownika. Aby korzystać z
ksiąŜki, potrzebna jest podstawowa znajomość PL/SQL i jego dodatków. Więcej
informacji na ten temat znajduje się w następujących publikacjach:
Oracle PL/SQL Programming, autorstwa Stevena Feuersteina i Billa Pribyla
(O'Reilly & Associates. Second Edition, 1997)
Oracle Built-in Packages, autorstwa Stevena Feuersteina, Charlesa Dye'a i Johna
Beresniewicza (O'Reilly & Associates, 1998)
Konwencje
DUśE LITERY stosowane dla słów kluczowych PL/SQL.
małe litery stosowane dla elementów zdefiniowanych przez
uŜytkownika, takich jak parametry.
Kursywa
stosowana dla parametrów w obrębie tekstu.
[ ]
w opisie składni wskazuje na element opcjonalny.
Wbudowane pakiety
Pakiety PL/SQL pozwalają na tworzenie kolekcji powiązanych ze sobą
elementów programu i sprawowanie nad nimi kontroli. System Oracle zawiera
bardzo duŜy zestaw wbudowanych pakietów, które na róŜne sposoby rozszerzają
funkcjonalność PL/SQL. Wiele wbudowanych dodatków pozwala na dostęp do
mechanizmów, które nie byłyby dostępne w inny sposób. Z pewnością pakiety te
stanowią nieocenioną pomoc przy tworzeniu aplikacji, zarządzaniu zasobami
serwera i przy wykonywaniu wielu innych operacji.
Wbudowane pakiety są omówione w porządku alfabetycznym. Dla kaŜdego
pakietu i programu zdefiniowanego w pakiecie zamieszczono nagłówek
(sekwencję wywołania) oraz dołączono krótki opis działania programu.
Dwa pakiety zasługują na szczególne omówienie. Pakiet STANDARD zawiera
708526840.003.png
wiele podstawowych elementów języka PL/SQL (typy danych, funkcje, a nawet
podstawowe operatory jak + i -). Funkcje pakietu STANDARD zostaną
omówione nieco później w sekcji „Wbudowane funkcje".
Pakiet DBMS_STANDARD opisany później w tym rozdziale stanowi
rozszerzenie pakietu STANDARD.
DBMS_ALERT
DBMS_ALERT zapewnia synchroniczny, transakcyjny mechanizm
powiadamiania o wystąpieniu określonego zdarzenia w bazie danych dla wielu
sesji.
PROCEDURE DBMS_ALERT.REGISTER (nazwa IN VARCHAR2);
Rejestruje wywołującą sesję z listy sesji odbierających
zgłoszenia alarmu nazwa.
PROCEDURE DBMS_ALERT.REMOVE (nazwa IN VARCHAR2);
Wyrejestrowuje sesję wywołującą z listy sesji odbierających zgłoszenia alarmu
nazwa.
PROCEDURE DBMS_ALERT.REMOVEALL;
Wyrejestrowuje sesję wywołującą z listy sesji odbierających zgłoszenia
jakiegokolwiek alarmu.
PROCEDURE DBMS_ALERT.SET_DEFAULTS (czuło ść IN NUMBER);
Pozwala określić ustawienia dla wywołującej sesji (czulość definiuje krok pętli
oczekiwania w sekundach).
PROCEDURE DBMS_ALERT.SIGNAL (nazwa IN VARCHAR2,
komunikat IN VARCHAR2);
Zgłasza wystąpienie alarmu nazwa wraz z dołączonym komunikatem komunikat
(Zarejestrowane sesje dla alarmu nazwa otrzymują zawiadomienie jedynie wtedy,
gdy zgłaszająca transakcja zostaje zatwierdzona).
PROCEDURE DBMS_ALERT.WAITANY (nazwa OUT VARCHAR2,
komunikat OUT VARCHAR2, status OUT INTEGER,
dozwolony_czas IN NUMBER DEFAULT MAXWAIT);
Powoduje oczekiwanie przez czas wynoszący maksymalnie dozwolony_czas
sekund na zawiadomienie o dowolnym alarmie, do którego zarejestrowana jest
sesja. Jeśli status = 0, to nazwa i komunikat zawierają informację alarmu. Jeśli
status = 1, to minął dozwolony czas oczekiwania przed nadejściem
zawiadomienia.
PROCEDURE DBMS_ALERT.WAITONE (nazwa IN VARCHAR2,
komunikat OUT VARCHAR2, status OUT INTEGER,
dozwolony_czas IN NUMBER DEFAULT MAXWAIT);
Powoduje oczekiwanie przez czas wynoszący maksymalnie dozwolony_czas
sekund na zawiadomienie o alarmie nazwa. Jeśli status = 0, to nazwa i komunikat
zawierają informację alarmu. Jeśli status = l, to minął dozwolony czas
oczekiwania przed nadejściem zawiadomienia.
708526840.004.png
DBMS_APPLICA TION_INFO
DBMS_APPLICATION_INFO pozwala aplikacjom na rejestrowanie bieŜącego
stanu wykonania w kilku wirtualnych tabelach V$ systemu Oracle.
PROCEDURE DBMS_APPLICATION_INFO.READ_CLIENT_INFO
(info_klienta OUT VARCHAR2);
Zwraca aktualnie zapisaną informację info_klienta dla danej sesji.
PROCEDURE DBMS_APPLICATION_INFO.READ_MODULE
(nazwa_modułu OUT VARCHAR2,
nazwa_czynno ś ci OUT VARCHAR2);
Zwraca bieŜąco zapisaną nazwa_modułu i nazwa_czynności dla danej sesji.
PROCEDURE DBMS_APPLICATION_INFO.SET_ACTION
(nazwa_czynno ś ci IN VARCHAR2);
Zapisuje nazwa_czynności w V$SESSION oraz V$SQLAREA jako bieŜącą
czynność dla danej sesji.
PROCEDURE DBMS_APPLICATION_INFO.SET_CLIENT_INFO
(info_klienta IN VARCHAR2);
Zapisuje info_klienta w V$SESSION jako aktualną informację o kliencie dla
danej sesji.
PROCEDURE DBMS_APPLICATION_INFO.SET_MODULE
(nazwa_modułu IN VARCHAR2, nazwa_czynno ś ci IN VARCHAR2);
Zapisuje nazwa_modułu i nazwa_czynności w V$SESSION oraz V$SQLAREA
jako bieŜący moduł i czynność dla sesji.
PROCEDURE DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS
(wskazówka IN OUT BINARY_INTEGER, kontekst IN NUMBER
DEFAULT 0, id_kroku IN NUMBER DEFAULT 0, bie Ŝą cy_krok IN
NUMBER DEFAULT 0, ilo ść _kroków IN NUMBER DEFAULT 0,
wykonanie IN NUMBER DEFAULT 0, do_wykonania_razem IN
NUMBER DEFAULT 0, dane_aplikacji_1 IN NUMBER DEFAULT 0,
dane_aplikacji_2 IN NUMBER DEFAULT 0, dane_aplikacji_3 IN
NUMBER DEFAULT 0);
Zapisuje lub aktualizuje dane o procesie wykonania dla długotrwałych operacji w
tabeli wirtualnej V$SESSION_LONGOPS. Wiersze są identyfikowane poprzez
wartość wskazówka; nowy wiersz jest uzyskiwany poprzez ustawienie
wskazówka na wartość stałej pakietu set_session_longops_nohint. Unikatowa
kombinacja id_kroku oraz kontekst równieŜ wymusza nowy wiersz.
Procedura SET_SESSION_LONGOPS jest uŜywana do śledzenia przebiegu
czasochłonnego procesu poprzez modyfikację danych w wirtualnej tabeli
V$SESSION_ LONGOPS.
DBMS_AQ
Pakiet DBMS_AQ pozwala na wstawianie i usuwanie komunikatów z kolejki
stworzonej za pomocą metody Oracle Advanced Queuing (tylko dla systemu
Oracle8).
PROCEDURE DBMS_AQ.ENQUEUE
708526840.005.png
(nazwa_kolejki IN VARCHAR2, opcje_wstawiania IN
DBMS_AQ.ENQUEUE_OPTIONS_T,
wła ś ciwo ś ci_komunikatu IN DBMS_AQ.MESSAGE_PROPERTIES_T,
zawarto ść IN typ_zawarto ś ci, id_komunikatu OUT RAW);
Wstawia zawartość komunikatu do kolejki nazwa_kolejki zgodnie z opcjami
określonymi w rekordzie opcje_wstawiania. Zawartość moŜe być typu RAW
bądź teŜ nazwą obiektu o określonym typie. Zwraca wskaźnik do wiadomości w
id_komunikatu.
PROCEDURE DBMS_AQ.DEQUEUE
(nazw_kolejki IN VARCHAR2, opcje_usuwania IN
DBMS_AQ.DEQUEUE_OPTIONS_T, wła ś ciwo ś ci_komunikatu OUT
DBMS_AQ.MESSAGE_PROPERTIES_T, zawarto ść OUT
typ_zawarto ś ci, id_wiadomo ś ci OUT RAW);
Pobiera zawartość komunikatu (moŜe być RAW lub obiekt danego typu) wraz z
właściwościami komunikatu określonymi przez opcje_usuwania. RównieŜ
zwraca identyfikator komunikatu.
DBMS_AQADM
Pakiet DBMS_AQADM zawiera zbiór programów pozwalających tworzyć,
zarządzać i usuwać kolejki i tabele kolejek w Oracle Advanced Queuing.
PROCEDURE DBMS_AQADM.CREATE_QUEUE_TABLE (tabela_kolejki
IN VARCHAR2, typ_zawarto ś ci_kolejki IN VARCHAR2,
klauzula_przechowywania IN VARCHAR2 DEFAULT NULL,
lista_sortowania IN VARCHAR2 DEFAULT NULL,
wielu_konsumentów IN BOOLEAN DEFAULT FALSE,
grupowanie IN BINARY_INTEGER DEFAULT NONE, komentarz IN
VARCHAR2 DEFAULT NULL, auto_zatwierdzanie IN BOOLEAN
DEFAULT TRUE);
Tworzy tabelę kolejki o nazwie tabela_kolejki typu typ_zawartości_kolejki
(RAW lub nazwa obiektu typu TYPE).
PROCEDURE DBMS_AQADM.CREATE_QUEUE (nazwa_kolejki IN
VARCHAR2, tabela_kolejki IN VARCHAR2, typ_kolejki IN
BINARY_INTEGER DEFAULT NORMAL_QUEUE,
max_próby IN NUMBER DEFAULT 0, opó ź nienie IN NUMBER
DEFAULT 0, czas_zachowania IN NUMBER DEFAULT 0, ś ledzenie
IN BOOLEAN DEFAULT FALSE,
komentarz IN VARCHAR2 DEFAULT NULL, auto_zatwierdzanie IN
BOOLEAN DEFAULT TRUE);
Tworzy kolejkę nazwa_kolejki w tabeli kolejki tabela_kolejki.
PROCEDURE DBMS_AQADM.DROP_QUEUE
(nazwa_kolejki IN VARCHAR2, auto_zatwierdzanie IN
BOOLEAN DEFAULT TRUE);
708526840.001.png
Zgłoś jeśli naruszono regulamin