eBooks.PL.Leksykon.Kieszonkowy.-.Oracle.PLSQL.Pakiety.I.Funkcje.rtf

(430 KB) Pobierz
Oracle PL/SQL Pakiety i funkcje

 

 

 

Oracle PL/SQL Pakiety i funkcje

Leksykon kieszonkowy


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 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.

...

Zgłoś jeśli naruszono regulamin