Leksykon Kieszonkowy - Oracle PLSQL Pakiety I Funkcje,
[ Pobierz całość w formacie PDF ]
Oracle PL/SQL Pakiety i funkcje
Leksykon kieszonkowyNiniejszy 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.
UWAGAGdy 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 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.
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
(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);
Usuwa kolejkę nazwa_kolejki.
PROCEDURE DBMS_AQADM.DROP_QUEUE_TABLE
(tabela_kolejki IN VARCHAR2, wymuszanie IN BOOLEAN DEFAULT FALSE, auto_zatwierdzanie IN BOOLEAN DEFAULT TRUE);
Usuwa tabelę kolejki o nazwie tabela_kolejki.
PROCEDURE DBMS_AQADM.START_QUEUE
(nazwa_kolejki IN VARCHAR2, dodawanie IN BOOLEAN DEFAULT TRUE, usuwanie IN BOOLEAN DEFAULT TRUE);
Uruchamia kolejkę nazwa_kolejki z możliwością dodawania i (lub) usuwania elementów.
PROCEDURE DBMS_AQADM.STOP_QUEUE
(nazwa_kolejki IN VARCHAR2, dodawanie IN BOOLEAN DEFAULT TRUE, usuwanie IN BOOLEAN DEFAULT TRUE, czas_oczekiwania IN BOOLEAN DEFAULT TRUE);
Zatrzymuje kolejkę nazwa_kolejki, zabraniając dodawania i (lub) usuwania elementów z oczekiwaniem przez czas_oczekiwania na zakończenie realizowanych transakcji.
PROCEDURE DBMS_AQADM.ALTER_QUEUE
(nazwa_kolejki IN VARCHAR2, max_powtórzeń IN NUMBER DEFAULT NULL, opóźnienie IN NUMBER DEFAULT NULL, czas_zachowania IN NUMBER DEFAULT NULL, auto_zatwierdzanie IN BOOLEAN DEFAULT TRUE);
Modyfikuje określone parametry kolejki nazwa_kolejki.
PROCEDURE DBMS_AQADM.ADD_SUBSCRIBER (nazwa_kolejki IN VARCHAR2, abonent IN SYS.AQS_AGENT);
Dodaje agenta abonenta do kolejki nazwa_kolejki.
PROCEDURE DBMS_AQADM.REMOVE_SUBSCRIBER (nazwa_kolejki IN VARCHAR2, abonent IN SYS.AQ$_AGENT);
Usuwa agenta abonenta z kolejki nazwa_kolejki.
PROCEDURE DBMS_AQADM.GRANT_TYPE_ACCESS (nazwa_użytkownika IN VARCHAR2);
Nadaje prawa użytkownikowi nazwa_użytkawnika do tworzenia kolejek współpracujących z wieloma konsumentami.
FUNCTION DBMS_AQADM.QUEUE_SUBSCRIBERS
(nazwa_kolejki IN VARCHAR2)
RETURN AQ$_SUBSCRIBER_LIST_T;
Zwraca listę abonentów kolejki nazwa_kolejki.
PROCEDURE DBMS_AQADM.START_TIME_MANAGER;
Uruchamia proces monitora kolejki.
PROCEDURE DBMS_AQADM.STOP_TIME_MANAGER;
Zatrzymuje proces monitora kolejki.
DBMS_DDL
DBMS_DDL zawiera programy pozwalające na rekompilację kodu procedur magazynowanych, analizę i wyliczanie statystyk dla obiektów bazy danych oraz modyfikację wzajemnych zależności obiektów w systemie Oracle8.
PROCEDURE DBMS_DDL.ALTER_COMPILE (typ IN VARCHAR2, schemat IN VARCHAR2, nazwa IN VARCHAR2);
Rekompiluje magazynowany obiekt PL/SQL nazwa (rozróżniane są duże i małe litery), który należy do schematu schemat i jest typu typ. Schemat NULL powoduje użycie bieżącego schematu. Dopuszczalne wartości dla typu to: PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY oraz PACKAGE SPECIFICATION.
PROCEDURE DBMS_DDL.ALTER_TABLE_NOT_REFERENCEABLE (nazwa_tabeli IN VARCHAR2, schemat_tabeli IN VARCHAR2 DEFAULT NULL, zmieniany_schemat IN VARCHAR2 DEFAULT NULL);
Przywraca zależności dla obiektu nazwa_tabeli według schematu zmieniany_schemat do nazwa_tabeli należącej do schematu schemat_tabeli na domyślne (tylko dla systemu Oracle8).
PROCEDURE DBMS_DDL.ALTER_TABLE_REFERENCEABLE (nazwa_tabeli IN VARCHAR2,
schemat_tabeli IN VARCHAR2 DEFAULT NULL, zmieniany_schemat IN VARCHAR2 DEFAULT NULL);
Tworzy wzajemne zależności dla obiektu tabeli w schemacie schemat_tabeli na podstawie schematu zmieniany_schemat dla obiektu nazwa_tabeli (tylko dla systemu Oracle8).
PROCEDURE DBMS_DDL.ANALYZE_OBJECT
(typ IN VARCHAR2, schemat IN VARCHAR2, nazwa IN VARCHAR2, metoda IN VARCHAR2,
estymowane_wiersze IN NUMBER DEFAULT NULL, procent_estymacji IN NUMBER DEFAULT NULL, opcje_metody IN VARCHAR2 DEFAULT NULL);
Wykonuje analizę obiektu bazy danych w danym schemacie i określonego typu (TABLE, INDEX lub CLUSTER), korzystając z metody (ESTIMATE, NULL lub DELETE). Gdy metoda to ESTIMATE, w celu określenia zakresu musi zostać podana albo wartość estymowane _wiersze albo procent_estymacji. Dodatkowe opcje analizy określone w opcje_metody to: FOR TABLE, FOR ALL COLUMNS [SIZE N], FOR ALL INDEXED COLUMNS [SIZE N] oraz FOR ALL INDEXES.
DBMS_DESCRIBE
Pakiet DBMS_DESCRIBE zawiera pojedynczą procedurę wykorzystywaną do opisu argumentów magazynowanej procedury lub funkcji PL/SQL.
PROCEDURE DBMS_DESCRIBE.DESCRIBE_PROCEDURE (nazwa_obiektu IN VARCHAR2, zarezerwowane1 IN VARCHAR2, zarezerwowane 2 IN VARCHAR2, przeładowanie OUT DBMS_DESCRIBE.NUMBER_TABLE,
pozycja OUT DBMS_DESCRIBE.NUMBER_TABLE, poziom OUT DBMS_DESCRIBE.NUMBER_TABLE, nazwa_argumentu OUT DBMS_DESCRIBE.VARCHAR2_TABLE,
typ_danych OUT DBMS_DESCRIBE.NUMBER_TABLE, wartość_domyślna OUT DBMS_DESCRIBE.NUMBER_TABLE,
we_wy OUT DBMS_DESCRIBE.NUMBER_TABLE, długość OUT DBMS_DESCRIBE.NUMBER_TABLE, precyzja OUT DBMS_DESCRIBE.NUMBER_TABLE, skala OUT DBMS_DESCRIBE.NUMBER_TABLE, podstawa OUT DBMS_DESCRIBE.NUMBER_TABLE, zapas OUT DBMS_DESCRIBE.NUMBER_TABLE);
Zwraca informacje o parametrach i typach zwracanych (w przypadku funkcji) określonego obiektu (procedury lub funkcji) w zbiorze tabel PL/SQL, których typy są opisane w tym samym pakiecie.
DBMS_JOB
DBMS_JOB jest interfejsem do podsystemu kolejek zadań Oracle, które pozwalają na automatyczne, bezobsługowe tworzenie harmonogramu i wykonywanie programów PL/SQL.
...
[ Pobierz całość w formacie PDF ]