Oracle PL/SQL Pakiety i funkcje
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.
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.
(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.
PROCEDURE DBMS_JOB.BROKEN
(zadanie IN BINARY_INTEGER,
uszkodzone IN BOOLEAN,
data IN DATE DEFAULT SYSDATE);
Ustawia lub gasi flagę uszkodzone dla danego zadania oraz opcjonalnie ustawia datę następnego wykonania poprzez określenie wartości data. Zadania z ustawioną flagą nie są automatycznie uruchamiane.
PROCEDURE DBMS_JOB.CHANGE
(zadanie IN BINARY_INTEGER, kod IN VARCHAR2, data IN DATE, interwał IN VARCHAR2);
Zmienia jeden lub więcej parametrów dla zadania (kod, data lub interwał).
PROCEDURE DBMS_JOB.INTERVAL
(zadanie IN BINARY_INTEGER, interwał IN VARCHAR2);
Zmienia wyrażenie służące do określenia daty następnego wykonania zadania na wartość interwał.
PROCEDURE DBMS_JOB.ISUBMIT
(zadanie IN BINARY_INTEGER,
kod IN VARCHAR2,
data IN VARCHAR2,
interwał IN VARCHAR2 DEFAULT 'null',
bez_parsowania IN BOOLEAN DEFAULT FALSE);
Tworzy nowe zadanie o określonym numerze zadania i definicji PL/SQL w kod, ustawiając harmonogram wykonania na data z interwałem interwał. Gdy parametr bez_parsowania ma wartość TRUE, operacja parsowania kodu PL/SQL jest odroczona do momentu wykonania.
PROCEDURE DBMS_JOB.NEXT_DATE
(zadanie IN BINARY_INTEGER, data IN DATE);
Zmienia termin następnego uruchomienia zadania na wartość data.
PROCEDURE DBMS_JOB.REMOVE
(zadanie IN BINARY_INTEGER);
Usuwa zadanie z kolejki zadań. Jeśli zadanie jest w trakcie wykonania, nastąpi jego dokończenie, lecz bez ponownego wstawienia do harmonogramu.
PROCEDURE DBMS_JOB.RUN
(zadanie IN BINARY_INTEGER);
Uruchamia zadanie dla bieżącej sesji w trybie natychmiastowym.
PROCEDURE DBMS_JOB.SUBMIT
(zadanie OUT BINARY_INTEGER,
kod IN VARCHAR2,
data IN DATE DEFAULT SYSDATE,
interwał IN VARCHAR2 DEFAULT 'null',
bez_parsowania IN BOOLEAN DEFAULT FALSE);
Tworzy nowe zadanie o określonym numerze zadania i definicji PL/SQL w kod, ustawiając harmonogram wykonania na data z interwałem interwał. Procedura zwraca numer identyfikacyjny dla zadania w zadanie. Gdy parametr bez_parsowania ma wartość TRUE, operacja parsowania kodu PL/ SQL jest odroczona do momentu wykonania.
PROCEDURE DBMS_JOB.USER_EXPORT
(zadanie IN BINARY_INTEGER,
wywołanie IN OUT VARCHAR2);
Zwraca łańcuch znakowy w wywalanie zawierający odwołanie do DBMS_JOB.ISUBMIT, które może posłużyć do ponownego utworzenia zadania w kolejce.
PROCEDURE DBMS_JOB.WHAT
(zadanie IN BINARY_INTEGER, kod IN VARCHAR2);
Zmienia definicję PL/SQL dla zadania zadanie na kod.
DBMS_LOB
Pakiet DBMS_LOB zawiera metody zapewniające dostęp i obsługę obiektów LOB (ang. large objects). Obiekty LOB obejmują obiekty: BLOB (ang. binary large objects), CLOB (ang. character large objects), NCLOB (ang. National Language Support character large objects) oraz BFILE (ang. binary files). Klauzula CHARACTER SET ANY_CS w deklaracjach CLOB określa lokalizatory CLOB lub NCLOB (tylko dla systemu Oracle8).
PROCEDURE DBMS_LOB.APPEND
(docelowy_lob IN OUT BLOB, źródłowy_lob IN BLOB);
PROCEDURE DBMS_LOB.APPEND
(docelowy_lob IN OUT CLOB CHARACTER SET
ANY_CS,
źródłowy_lob IN CLOB CHARACTER SET
docelowy_lob%CHARSET) ;
Dołącza zawartość źródłowego obiektu LOB źródłowy_lob do docelowego LOB docelowy_lob. Oba obiekty LOB muszą być tego samego typu: BLOB, CLOB lub NCLOB.
FUNCTION DBMS_LOB.COMPARE
(lob_1 IN BLOB | CLOB CHARACTER SET ANY_CS,
lob_2 IN BLOB | CLOB CHARACTER SET lob_1%CHARSET,
ilość IN INTEGER := 4294967295,
offset_1 IN INTEGER := 1,
offset_2 IN INTEGER := 1)
RETURN INTEGER;
FUNCTION DBMS_LOB.COMPARE
(plik_1 IN BFILE,
plik_2 IN BFILE,
ilość IN INTEGER,
offset_1 IN INTEGER := 1,
offset_2 IN INTEGER := 1)
RETURN INTEGER;
Porównuje wejściowe obiekty LOB lob_1 i lob_2 lub plik_1 i plik_2 na obszarze ilość bajtów, opcjonalnie rozpoczynając od pozycji offset_1 i offset_2 bajtów w plikach wejściowych. Oba obiekty muszą być tego samego typu LOB: BLOB, CLOB, NCLOB lub BFILE.
Zwraca wartość 0, jeśli obiekty są dokładnie takie same, wartość różną od zera w przypadku różnicy lub NULL, jeśli którykolwiek z parametrów ilość, offtet_1 lub offset_2 są bądź mniejsze od 1, bądź większe od lobmaxsize.
PROCEDURE DBMS_LOB.COPY
(docelowy_lob IN OUT BLOB,
źródlowy_lob IN BLOB,
ilość IN INTEGER,
docelowy_offset IN INTEGER := 1,
źródłowy_offset IN INTEGER := 1);
PROCEDURE DBMS_LOB.COPY
(docelowy_lob IN OUT CLOB CHARACTER SET ANY_CS,
źródłowy_lob IN CLOB CHARACTER SET dest_lob%CHARSET,
ilość IN INTEGER,
docelowy_offset IN INTEGER := 1,
źródlowy_offset IN INTEGER := 1);
Kopiuje ilość bajtów (BLOB) lub znaków (CLOB) ze źródłowego LOB źródłowy_lob, rozpoczynając od pozycji źródłowy_offset, bajtów lub znaków do obiektu LOB docelowy_lob od pozycji docelowy_offset. Oba obiekty muszą być tego samego typu LOB: BLOB, CLOB lub NCLOB.
PROCEDURE DBMS_LOB.ERASE
(lob_lok IN OUT BLOB | CLOB CHARACTER SET ANY_CS, ilość IN OUT INTEGER, Offset IN INTEGER := 1);
Wymazuje (wypełnia wartością zero) określoną ilość ilość bajtów (BLOB) lub znaków (CLOB) w obiekcie LOB lob_lok, począwszy od offset bajtów lub znaków w obiekcie LOB.
PROCEDURE DBMS_LOB.FILECLOSE
(lok_pliku in out bfile);
Zamyka obiekty BFILE lok_pliku, niezależnie od tego, czy jest otwarty, czy nie.
PROCEDURE DBMS_LOB.FILECLOSEALL;
Zamyka wszystkie obiekty BFILE dla bieżącej sesji.
FUNCTION DBMS_LOB.FILEEXISTS
(lok_pliku IN BFILE)
RETURN INTEGER;
Zwraca 1, jeśli obiekt BFILE lok_pliku istnieje, lub 0 w przeciwnym przypadku.
PROCEDURE DBMS_LOB.FILEGETNAME
(lok_pliku IN BFILE, alias_katalogu OUT VARCHAR2, nazwa_pliku OUT VARCHAR2);
Pobiera alias katalogu (jaki został poprzednio zdefiniowany poleceniem CREATE DIRECTORY) i nazwę pliku dla danego lokalizatora lok_pliku.
FUNCTION DBMS_LOB.FILEISOPEN
(lok_pliku IN BFILE)
RETURN INTEGER;
Zwraca l, jeśli BFILE lok_pliku jest otwarty, lub 0 w przeciwnym przypadku.
(lok_pliku IN OUT BFILE,
tryb_otwarcia IN BINARY_INTEGER :=FILE_READONLY) ;
Otwiera obiekt BFILE lok_pliku do trybu tylko-do-odczytu.
FUNCTION DBMS_LOB.GETLENGTH
(lob_lok IN BLOB)
RETURN INTEGER;
FUNCTION DBMS_LOB.GETLENGTH
(lob_lok IN CLOB CHARACTER SET ANY_CS)
RETURN INTEGER;
FUNCTION DBMS_LOB.GETLENGTH
(lob_lok IN BFILE)
RETURN INTEGER;
Zwraca rozmiar obiektu LOB lob_lok w bajtach lub znakach.
FUNCTION DBMS_LOB.INSTR
(lob_lok IN BLOB | BFILE,
wzorzec IN RAW,
offset IN INTEGER := 1,
krotność IN INTEGER := 1) RETURN INTEGER;
FUNCTION DBMS_LOB.INSTR
(lob_lok IN CLOB CHARACTER SET ANY_CS,
wzorzec IN VARCHAR2 CHARACTER SET lob_lok%CHARSET,
offset IN INTEGER := 1,
krotność IN INTEGER := 1) RETURN INTEGER;
Podobna do wbudowanej funkcji INSTR. Zwraca pozycję bajta (BLOB) lub znaku (CLOB) w obiekcie LOB lob_lok, gdzie znaleziono n-krotne wystąpienie wzorca. Wyszukiwanie rozpoczyna się od pozycji offset w bajtach lub znakach.
(docelowy_lob IN OUT BLOB | CLOB CHARACTER SET ANY_CS, źródłowy_lob IN BFILE, ilość IN INTEGER,
docelowy_offset IN INTEGER := 1, źródłowy_offset IN INTEGER := 1);
Kopiuje określoną ilość bajtów ze źródłowego obiektu BFILE źródłowy_lob do docelowego obiektu LOB docelowy_lob, rozpoczynając od pozycji źródłowy_offset w bajtach obiektu źródłowego i docelowy_offset bajtów obiektu docelowego.
PROCEDURE DBMS_LOB.READ
(lob_lok IN BLOB | BFILE, ilość IN OUT BINARY_INTEGER, offset IN INTEGER, bufor OUT RAW);
PROCEDURE DBMS_LOB.READ
(lob_lok IN CLOB CHARACTER SET ANY_CS,
ilość IN OUT BINARY_INTEGER,
offset IN INTEGER,
bufor OUT VARCHAR2 CHARACTER SET lob_lok%CHARSET) ;
Kopiuje ilość bajtów (BLOB) lub znaków (CLOB) z obiektu LOB lob_lok, począwszy do pozycji offset bajtów lub znaków w obiekcie do zmiennej bufor. Zwraca rzeczywistą ilość skopiowanych bajtów lub znaków.
FUNCTION DBMS_LOB.SUBSTR
(lob_lok IN BLOB | BFILE,
ilość IN INTEGER := 32767,
offset IN INTEGER := 1) RETURN RAW;
FUNCTION DBMS_LOB.SUBSTR
(lob_lok IN CLOB CHARACTER SET ANY_CS,
amount IN INTEGER := 32767,
offset IN INTEGER := 1) RETURN VARCHAR2 CHARACTER SET lob_lok%CHARSET;
Podobna do wbudowanej funkcji SUBSTR. Zwraca ilość bajtów (BLOB) lub znaków (CLOB) obiektu LOB lob_lok, poczynając od pozycji offset wyrażonej w bajtach lub znakach.
PROCEDURE DBMS_LOB.TRIM
(lob_lok IN OUT BLOB | CLOB CHARACTER SET ANY_CS, nowa_długość IN INTEGER);
Skraca obiekt LOB lob_lok do nowej długości określonej przez nowa_dlugosc w bajtach (BLOB) lub znakach (CLOB).
PROCEDURE DBMS_LOB.WRITE (lob_lok IN OUT BLOB, ilość IN BINARY_INTEGER, offset IN INTEGER, bufor IN RAW);
PROCEDURE DBMS_LOB.WRITE
(lob_lok IN OUT CLOB CHARACTER SET ANY_CS, ilość IN BINARY_INTEGER, offset IN INTEGER, bufor IN VARCHAR2 CHARACTER SET lob_lok%CHARSET) ;
Kopiuje ilość bajtów ze zmiennej bufor do docelowego obiektu LOB lob_lok, rozpoczynając od pozycji offset w bajtach (BLOB) lub znakach (CLOB), nadpisując istniejące dane w obiekcie.
Pakiet DBMS_LOCK udostępnia usługi systemu Oracle związane z obsługą blokad do implementacji wyspecjalizowanych blokad, nie związanych z danymi, oraz wymagań szeregowania w obrębie aplikacji.
PROCEDURE DBMS_LOCK.ALLOCATE_UNIQUE
(nazwa_blokady IN VARCHAR2, uchwyt_blokady OUT VARCHAR2, czas_zycia IN INTEGER DEFAULT 864000);
Alokuje unikatowy uchwyt_blokady dla blokady identyfikowanej przez nazwa_blokady na okres określony parametrem czas_życia. Wykonuje również operację zatwierdzenia.
FUNCTION DBMS_LOCK.CONVERT
(id IN INTEGER | uchwyt_blokady IN VARCHAR2,
tryb_blokady IN INTEGER,
czas_oczekiwania IN NUMBER DEFAULT MAXWAIT)
RETURN INTEGER;
Zmienia tryb blokady na tryb_blokady dla blokady identyfikowanej przez identyfikator id lub uchwyt_blokady. Próba realizacji zmiany trybu jest podejmowana przez czas określony parametrem czas_oczekiwania. Parametr tryb_blokady musi mieć wartość stałej zdefiniowanej w pakiecie DBMS_LOCK. Zwracane wartości to 0 = pomyślne zakończenie; l = upłynął czas oczekiwania; 2 = zakleszczenie; 3 = błędny parametr; 4 = nie jest właścicielem, zmiana jest niemożliwa; 5 = niepoprawna wartość uchwytu.
FUNCTION DBMS_LOCK.RELEASE
(id IN INTEGER | uchwyt_blokady IN VARCHAR2) RETURN INTEGER;
Zwalnia blokadę identyfikowaną przez id lub uchwyt_blokady. Zwracane wartości: 0 = pomyślne zakończenie; 3 = błędny parametr; 4 = nie jest właścicielem, zwolnienie jest niemożliwe; 5 = niepoprawna wartość uchwytu.
FUNCTION DBMS_LOCK.REQUEST
(id IN INTEGER | uchwyt_blokady IN VARCHAR2, tryb_blokady IN INTEGER DEFAULT X_MODE, czas_oczekiwania IN INTEGER DEFAULT MAXWAIT, zwolnij_przy_zatwierdzeniu IN BOOLEAN DEFAULT FALSE)
RETURN INTEGER;
Próbuje zająć blokadę identyfikowaną przez id albo przez uchwyt_blokady w trybie określonym przez tryb_blokady przez czas określony parametrem czas_oczekiwania. Gdy parametr zwolnij_przy_zatwierdzeniu ma wartość TRUE, to blokada jest automatycznie zwalniana przy operacji COMMIT lub ROLLBACK. tryb_blokowania musi przyjmować wartość stałej zdefiniowanej dla pakietu DBMS_LOCK. Zwracane wartości: 0 = pomyślne zakończenie; 1 = upłynął czas oczekiwania; 2 = zakleszczenie; 3 = błędny parametr; 4 = nie jest właścicielem, zajęcie jest niemożliwe; 5 = niepoprawna wartość uchwytu.
PROCEDURE DBMS_LOCK.SLEEP (sek IN NUMBER);
Zawiesza sesję na czas (w sekundach) określony parametrem sek.
DBMS_OUTPUT
Ten pakiet dostarcza mechanizmy do wyświetlania informacji z programu PL/SQL na urządzeniu wyjściowym sesji. Można go wykorzystać jako proste narzędzie do debuggingu lub śledzenia.
PROCEDURE DBMS_OUTPUT.DISABLE;
Wyłącza wyjście dla pakietu i czyści bufor DBMS_OUTPUT.
PROCEDURE DBMS_OUTPUT.ENABLE
(rozmiar_bufora IN INTEGER DEFAULT 20000);
Włącza wyjście dla pakietu i ustawia maksymalny rozmiar bufora w bajtach na wartość rozmiar_bufora.
PROCEDURE DBMS_OUTPUT.GET_LINE
(linia OUT VARCHAR2, status OUT INTEGER);
Pobiera następną linię tekstu z bufora i umieszcza ją w zmiennej linia. Status równy 0 oznacza pomyślne zakończenie operacji; 1 oznacza wystąpienie blędu.
PROCEDURE DBMS_OUTPUT.GET_LINES
(linia OUT DBMS_OUTPUT.CHARARR, ilosc_linii IS OUT INTEGER);
Pobiera ilość_linii linii z bufora i umieszcza je w tablicy PL/SQL.
PROCEDURE DBMS_OUTPUT.NEW_LINE;
Zapisuje znak nowej linii do bufora wyjściowego DBMS_OUTPUT.
PROCEDURE DBMS_OUTPUT.PUT
(a IN DATE|NUMBER|VARCHAR2);
Wstawia dane zawarte w a do bufora DBMS_OUTPUT i nie dodaje znaku nowej linii.
PROCEDURE DBMS_OUTPUT.PUT_LINE
(a IN DATE|NUMBER|VARCHAR2);
Wstawia dane zawarte w a do bufora DBMS_OUTPUT i dodaje znak nowej linii.
DBMS_PIPE
Pakiet DBMS_PIPE pozwala zrealizować wymianę komunikatów między sesjami bazy danych przy użyciu struktur pamięciowych. Komunikacjajest asynchroniczna, nietransakcyjna i dostępna jedynie na czas sesji.
FUNCTION DBMS_PIPE.CREATE_PIPE
(nazwa_potoku IN VARCHAR2,
max_rozm_potoku IN INTEGER DEFAULT 8192,
prywatny IN BOOLEAN DEFAULT TRUE)
RETURN INTEGER;
Tworzy potok identyfikowany przez nazwa_potoku o maksymalnym rozmiarze max_rozm_potoku i zwraca 0. Gdy parametr prywatny ma wartość FALSE, to potok jest publicznie dostępny.
FUNCTION DBMS_PIPE.NEXT_ITEM_TYPE RETURN INTEGER;
Zwraca wartość całkowitą określającą typ danych następnego elementu w buforze komunikatu sesji.
PROCEDURE DBMS_PIPE.PACK_MESSAGE
(element IN VARCHAR2 | NUMBER | DATE);
Wstawia (pakuje) element do bufora komunikatu sesji, powodując przeładowanie typu danych elementu.
PROCEDURE DBMS_PIPE.PACK_MESSAGE_RAW (element IN RAW);
Wstawia (pakuje) dane typu RAW zawarte w element do bufora komunikatu sesji.
PROCEDURE DBMS_PIPE.PACK_MESSAGE_ROWID (element IN ROWID);
Wstawia (pakuje) dane typu ROWID zawarte w element do bufora komunikatu sesji.
PROCEDURE DBMS_PIPE.PURGE
(nazwa_potoku IN VARCHAR2);
Usuwa wszystkie komunikaty z potoku.
FUNCTION DBMS_PIPE.RECEIVE_MESSAGE
(nazwa_potoku IN VARCHAR2,
czas_oczekiwania IN INTEGER DEFAULT MAXWAIT)
RETURN INTEGER;
Odbiera komunikat z potoku do bufora komunikatu sesji, oczekując do czas_oczekiwania sekund na pomyślne zakończenie operacji. Zwraca 0 w przypadku sukcesu lub 1 przy przekroczeniu czasu oczekiwania.
FUNCTION DBMS_PIPE.REMOVE_PIPE
(nazwa_potoku IN VARCHAR2) RETURN INTEGER;
Usuwa potok nazwa_potoku i zwalnia pamięć do obszaru współdzielonego. Zwraca wartość 0.
PROCEDURE DBMS_PIPE.RESET_BUFFER;
Resetuje wskaźniki zapakowania i wypakowania dla bufora komunikatu sesji, co efektywnie kasuje zawartość bufora.
FUNCTION DBMS_PIPE.SEND_MESSAGE (nazwa_potoku IN VARCHAR2,
czas_oczekiwania IN INTEGER DEFAULT MAXWAIT, max_rozm_potoku IN INTEGER DEFAULT 8192)
RETURN INTEGER;
Przesyła zawartość bufora komunikatu sesji do potoku nazwa_potoku, oczekując na pomyślne zakończenie przez czas_oczekiwania i opcjonalnie zwiększa maksymalny rozmiar potoku na max_rozm_potoku. Zwraca 0 w przypadku sukcesu i l przy przekroczeniu czasu oczekiwania.
FUNCTION DBMS_PIPE.UNIQUE_SESSION_NAME
RETURN VARCHAR2;
Zwraca identyfikator tekstowy unikatowy dla sesji o długości do 30 bajtów.
PROCEDURE DBMS_PIPE.UNPACK_MESSAGE
(element OUT VARCHAR2 | NUMBER | DATĘ);
Wypakowuje kolejny element danych w buforze komunikatu do element, powodując przeładowanie typu danych zmiennej element.
PROCEDURE DBMS_PIPE.UNPACK_MESSAGE_RAW (element OUT RAW);
Wypakowuje kolejny element danych w buforze komunikatu do zmiennej element, gdy jest typu RAW.
PROCEDURE DBMS_PIPE.UNPACK_MESSAGE_ROWID (element OUT ROWID);
Wypakowuje kolejny element danych w buforze komunikatu do zmiennej element, gdy jest typu ROWID.
DBMS_RANDOM
Pakiet DBMS_RANDOM zapewnia mechanizm generacji liczb losowych (tylko dla systemu Oracle8).
PROCEDURE DBMS_RANDOM.INITIALIZE (ziarno IN BINARY_INTEGER);
Inicjalizuje generator liczb losowych wartością określoną w ziarno, która powinna mieć co najmniej pięć cyfr.
RETURN BINARY_INTEGER;
Zwraca całkowitą wartość losową z generatora liczb losowych.
PROCEDURE DBMS_RANDOM.SEED
(ziarno IN BINARY_INTEGER);
Zmienia wartość ziarna generatora liczb losowych na ziarno, które powinno mieć co najmniej pięć cyfr.
PROCEDURE DBMS_RANDOM.TERMINATE;
Zwalnia zasoby wykorzystywane przez generator liczb losowych.
DBMS_ROWID
Pakiet DBMS_ROW1D dostarcza podprogramy zapewniające obsługę identyfikatorów ROWID. Identyfikator ROWID zmienił strukturę w systemie Oracle8 i w jego przypadku ten dodatek obsługuje zarówno stary, jak i nowy format ROWID.
Identyfikator ROWID dla Oracle7 (ograniczony) ma trzy części składowe (znaki kodowane w systemie 16, hex):
BBBBBBBB.RRRR.FFFF
Identyfikator ROWID dla Oracle8 (rozszerzony) ma cztery części składowe (znaki kodowane w systemie 64):
OOOOOOFFFBBBBBBRRR
gdzie:
OOOOOO jest numerem obiektu.
FFFF (FFF) jest absolutnym (V7) lub relatywnym (V8) numerem pliku.
BBBBBBBB (BBBBBB) jest numerem bloku w obrębie pliku. RRRR (RRR) jest numerem wiersza w obrębie bloku.
FUNCTION DBMS_ROWID.ROWID_BLOCK_NUMBER
(id_wiersza IN ROWID)
RETURN NUMBER;
Zwraca składnik numeru bloku dla id_wiersza.
(typ_id_wiersza IN NUMBER,
numer_obiektu IN NUMBER,
relatywny_numer_pliku IN NUMBER,
numer_bloku IN NUMBER,
numer_wiersza IN NUMBER)
RETURN ROWID;
Tworzy identyfikator ROWID typu typ_id_wiersza złożony z numer_obiektu, relatywny_numer_pliku, numer_bloku oraz numer_wiersza.typ_id_wiersza może być określony jako ROWID_TYPE_EXTENDED lub ROWID_TYPE_RESTRICTED. Numer_obiektu może stanowić ROWID_OBJECT_UNDEFINED lub numer obiektu (OID).
PROCEDURE DBMS_ROWID.ROWID_INFO (rowid IN ROWID, rowid_type OUT NUMBER, object_number OUT NUMBER, relative_fno OUT NUMBER, block_number OUT NUMBER, row_number OUT NUMBER) ;
Dokonuje rozbioru elementu rowid na poszczególne składowe. id_wiersza może być określony jako ROWID_TYPE_EXTENDED lub ROWID_TYPE_RESTRICTED. Numer_obiektu może stanowić ROWID_OBJECT_UNDEFINED lub numer obiektu (OID).
FUNCTION DBMS_ROWID.ROWID_OBJECT
(row_id IN ROWID) RETURN NUMBER;
Zwraca wartość dla składnika numeru obiektu dla row_id.
FUNCTION DBMS_ROWID.ROWID_RELATIVE_FNO
(row_id IN ROWID) RETURN NUMBER;
Zwraca wartość dla składnika relatywnego numeru pliku dla row_id.
FUNCTION DBMS_ROWID.ROWID_ROW_NUMBER
(row_id IN ROWID) RETURN NUMBER;
Zwraca wartość dla składnika numeru wiersza dla row_id.
FUNCTION DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO
(row_id IN ROWID,
nazwa_schematu IN VARCHAR2,
nazwa_obiektu IN VARCHAR2)
RETURN NUMBER;
Zwraca absolutny numer pliku dla row_id, nazwa_schematu i nazwa_obiektu.
(stary_rowid IN ROWID,
nazwa_schematu IN VARCHAR2, nazwa_obiektu IN VARCHAR2, typ_konwersji IN INTEGER)
RETURN ROWID;
Zwraca rozszerzony ROWID dla ograniczonego stary_ rowid, nazwa_schematu i nazwa_obiektu, korzystając z typ_konwersji. typ_konwersji może być albo ROWID _CONVERT_INTERNAL (ROWID był przechowywany w kolumnie typu ROWlD) lub ROWID_CONVERT_ EXTERNAL (ROWID był przechowywany w kolumnie typu CHAR/VARCHAR/VARCHAR2).
FUNCTION DBMS_ROWID.ROWID_TO_RESTRICTED
(stary_rowid IN ROWID,
typ_konwersji IN INTEGER) RETURN ROWID;
Zwraca ograniczony ROWID dla rozszerzonego stary_rowid, korzystając z typ_konwersji. typ_konwersji może być albo ROWID_CONVERT_INTERNAL (ROWID będzie przechowywany w kolumnie typu ROWID) lub ROWID_CONVERT_EXTERNAL (ROWID będzie przechowywany w kolumnie typu CHAR/VARCHAR/VARCHAR2).
FUNCTION DBMS_ROWID.ROWID_TYPE
(row_id IN ROWID) RETURN NUMBER;
Zwraca rodzaj ROWID dla row_id: ROWID_TYPE_EXTENDED lub ROWID_TYPE_ RESTRICTED.
FUNCTION DBMS_ROWID.ROWID_VERIFY
(rowid IN ROWID,
nazwa_schematu IN VARCHAR2,
nazwa_obiektu IN VARCHAR2,
typ_konwersji IN INTEGER) RETURN NUMBER;
Zwraca ROWlD_VALID lub ROWID_INVALID dla rowid, nazwa_schematu i nazwa_obiektu, korzystając z typ_konwersji. typ_konwersji może być albo ROWlD_CONVERT_ INTERNAL (ROWID był przechowywany w kolumnie typu ROWID) lub ROWID_CONVERT_EXTERNAL (ROWID był przechowywany w kolumnie typu CHAR/VARCHAR/VARCHAR2).
Pakiet DBMS_SESSION obejmuje metody pozwalające na modyfikacje ustawień sesji, włączanie lub wyłączanie ról oraz zarządzanie zasobami sesji.
PROCEDURE DBMS_SESSION.CLOSE_DATABASE_LINK
(dblink IN VARCHAR2);
Zamyka łącze bazy danych lub wywołuje wyjątek, jeśli łącze nie jest otwarte lub jest w użyciu.
PROCEDURE DBMS_SESSION.FREE_UNUSED_USER_MEMORY;
Zwalnia wolną pamięć sesji do zasobów systemu operacyjnego (w przypadku połączenia dedykowanego) lub do obszaru współdzielonego Oracle (w przypadku połączenia współdzielonego).
FUNCTION DBMS_SESSION.IS_ROLE_ENABLED
(nazwa_roli IN VARCHAR2)
RETURN BOOLEAN;
Zwraca wartość TRUE, jeśli rola nazwa_roli jest dostępna dla bieżącej sesji.
FUNCTION DBMS_SESSION.IS_SESSION_ALIVE
(unikalny_id IN VARCHAR2)
RETURN BOOLEAN;
Zwraca wartość TRUE, jeśli sesja identyfikowana przez unikalny_id nadal istnieje (tylko dla systemu Oracle8).
PROCEDURE DSMS_SESSION.RESET_PACKAGE;
Resetuje stan wszystkich pakietów dla sesji, niszcząc wartości wszystkich istniejących zmiennych pakietów.
PROCEDURE DBMS_SESSION.SET_CLOSE_CACHED_OPEN_CURSORS (kursor IN BOOLEAN);
Nadpisuje parametr bazy danych CLOSE_CACHED_ OPEN_CURSORS na poziomie sesji na wartość kwsor.
PROCEDURE DBMS_SESSION.SET_LABEL (etykieta IN VARCHAR2);
Ustawia etykietę etykieta sesji dla sesji systemu Trusted Oracle.
PROCEDURE DBMS_SESSION.SET_MLS_LABEL_FORMAT (format IN VARCHAR2);
Ustawia domyślny format etykiety sesji systemu Trusted Oracle na format.
PROCEDURE DBMS_SESSION.SET MLS (parametr IN VARCHAR2, wartość IN VARCHAR2);
Ustawia parametr NLS (National Language Support) na wartość. Gdy wartość jest maską formatu, należy użyć potrójnego znaku cudzysłowu dla łańcucha znakowego.
(polecenie_roli IN VARCHAR2);
Włącza role (role) poprzez dołaczeme polecenie_roli do polecenia SET_ROLE i jego wykonanie. Pozwala na wyłączenie wszystkich ról poprzez ustawienie polecenie_roli na NONE.
PROCEDURE DBMS_SESSION.SET_SQL_TRACE (śledzenie_sql IN BOOLEAN);
Włącza lub wyłącza śledzenie SQL dla sesji zgodnie z parametrem śledzenie_sql (TRUE = włączenie. FALSE = wyłączenie).
FUNCTION DBMS_SESSICN.UNIQUE_SESSICN_ID
RETURN VARCHAR2;
Zwraca łańcuch znakowy identyfikujący jednoznacznie sesję o długości do 24 bajtów.
Pakiet DBMS_SHARED_POOL zawiera programy ułatwiające zarządzaniem obszarem współdzielonym Oracle Shared Global Area (SGA).
PROCEDURE DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD
(próg IN NUMBER);
Określa maksymalny rozmiar obiektu, dla którego z obszaru współdzielonego zostaną usunięte inne obiekty dla uzyskania większej przestrzeni. Próba załadowania obiektów większych od wartości próg spowoduje wywołanie błędu ORA-04031 w przypadku braku wystarczającej przestrzeni.
PROCEDURE DBMS_SHARED_POOL.KEEP (nazwa IN VARCHAR2, flaga IN CHAR DEFAULT 'P');
Powoduje zablokowanie obiektu nazwa w obszarze współdzielonym. Typ obiektu jest identyfikowany poprzez wartość flaga: P lub p dla pakietu, procedury lub funkcji, Q lub q dla sekwencji oraz R lub r dla wyzwalaczy. Podanie dowolnego innego znaku dla flagi pozwala zablokować kursor identyfikowany przez adres i wartość funkcji haszującej (z V$SQLAREA) podanej w nazwa.
PROCEDURE DBMS_SHARED_POOL.SIZES
(rozmiar_min IN NUMBER);
Wyświetla obiekty i kursory umieszczone w SGA. których rozmiar przekracza rozmiar_min w kilobajtach.
PROCEDURE DBMS_SHARED_POOL.UNKEEP
(nazwa IN VARCHAR2, flaga IN CHAR DEFAULT 'P');
Odblokowuje w obszarze współdzielonym obiekt typu flaga identyfikowany poprzez nazwa.
Dopuszczalne wartości dla flaga są takie same, jak w przypadku DBMS_SHARED_POOL.KEEP.
DBMS_SPACE
Pakiet DBMS_SPACE zawiera procedury obsługujące użycie wewnętrznych przestrzeni i informacji na temat list freelist dla tabel, indeksów i segmentów klastrów.
PROCEDURE DBMS_SPACE.FREE_BLOCKS
(właściciel_segmentu IN VARCHAR2, nazwa_segmentu IN VARCHAR2, typ_segmentu IN VARCHAR2, id_grupy_freelist IN NUMBER, wolne_bloki OUT NUMBER, skan_limit IN NUMBER DEFAULT NULL [,nazwa_partycji IN VARCHAR2 DEFAULT NULL]);
Zwraca w wolne_bloki liczbę bloków w liście freelist dla segmentu nazwa_segmentu, typ typ_segmentu (TABLE. INDEX lub CLUSTER), którego właścicielem jest właściciel_segmentu w partycji nazwa_partycji (opcjonalnie i tylko dla systemu Oracle8). Opcjonalny parametr skan_limit ogranicza liczbę skanowanych wolnych bloków.
PROCEDURE DBMS_SPACE.UNUSED_SPACE
(własciciel_segmentu IN VARCHAR2, nazwa_segmentu IN VARCHAR2,
typ_segmentu IN VARCHAR2, razem_bloki OUT NUMBER, razen_bajty OUT NUMBER,
nieużywane_bloki OUT NUMBER,
nieużywane_bajty OUT NUMBER,
id_pliku_ostatnio_uzywanego_ekstentu OUT NUMBER, id_bloku_ostatnio_uzywanego_ekstentu OUT NUMBER, ostatnio_używany_blok OUT NUMBER [,nazwa_partycji IN VARCHAR2 DEFAULT NULL]);
Zwraca wartość znaku highwater (id_pliku_ostatnio_używanego_ekstentu, id_bloku_ostatnio_używanego_ekstentu oraz ostatnio_używany_blok), zużytą przestrzeń (razem_bloki, razem_bajty) oraz nieużywaną przestrzeń (nieużywane_blok, nieużywane_bajty) w segmencie nazwa_segmentu typu typ_segmentu (TABLE. INDEX lub CLUSTER), którego właścicielem jest właściciel_segmentu w partycji nazwa_partycji (opcjonalnie i tylko dla systemu Oracle8).
Pakiet DBMS_SQL dostarcza podprogramy pozwalające korzystać z dynamicznych poleceń SQL w obrębie bloków PL/SQL. Dla systemu Oracle8 jest to podprogram, który zapewnia obsługę operacji na tablicach w PL/SQL.
PROCEDURE DBMS_SQL.BIND_ARRAY
(kursor IN INTEGER, nazwa IN VARCHAR2,
<tabela IN typ_danych>
[,index1 IN INTEGER, index2 IN INTEGER]);
Wiąże tablicę tabela ze zmienną wiązaną w parsowanym (ale niewykonanym) poleceniu SQL w kursorze kursor (zwróconym przez wywołanie OPEN_CURSOR). Dla systemu Oracle8 procedura jest wykorzystywana do przetwarzania tablicy. <tabela IN typ_danych> może przyjmować postać:
n_tab IN DBMS_SQL.NUMBER_TABLE
c_tab IN DBMS_SQL.VARCHAR2_TABLE
d_tab IN DBMS_SQL.DATE_TABLE
bl_tab IN DBMS_SQL.BLOB_TABLE
cl_tab IN DBMS_SQL.CLOB_TABLE
bf_tab IN DBMS_SQL.BFILE_TABLE
Opcjonalny argument index1 określa dolną granicę (pierwszy wiersz) w obrębie tabeli, a index2 określa górną granicę (ostatni wiersz). Tylko dla systemu Oracle8.
PROCEDURE DBMS_SQL.BIND_VARIABLE
(kursor IN INTEGER, nazwa IN VARCHAR2,
wartość IN NUMBER | VARACHAR2 | DATE | BLOB | CLOB
CHARACTER SET ANY_CS | BFILE [ , oczekiwany_rozmiar IN INTEGER]);
Wiąże wartość skalarną ze zmienną wiązaną w parsowanym poleceniu SQL w kursorze kursor. opcjonalnie można określić maksymalny oczekiwany rozmiar określony w oczekiwany_rozmiar.
PROCEDURE DBMS_SQL.BIND_VARIABLE_CHAR
(kursor in INTEGER,
nazwa IN VARCHAR2,
wartość IN CHAR CHARACTER SET ANY_CS
[ , oczekiwany_rozmiar IN INTEGER]);
Wiąże skalarną wartość CHAR/NCHAR ze zmienną wiązaną w parsowanym poleceniu SQL w kursorze kursor, opcjonalnie można określić maksymalny oczekiwany rozmiar określony w oczekiwany_rozmiar.
PROCEDURE DBMS_SQL.BIND_VARIABLE_RAW
(kursor IN INTEGER, nazwa IN VARCHAR2, wartość IN RAM
[ , oczekiwany rozmiar IN INTEGER]);
Wiąże skalarną wartość RAW ze zmienną wiązaną w parsowanym poleceniu SQL w kursorze kursor (zwróconym przez wywołanie OPEN_CURSOR), opcjonalnie można określić maksymalny oczekiwany rozmiar określony w oczekiwany_rozmiar.
PROCEDURE DBMS_SQL.BIND_VARIABLE_ROWID (kursor IN INTEGER, nazwa IN VARCHAR2, value IN ROWID);
Wiąże skalarną wartość RAW ze zmienną wiązaną w parsowanym poleceniu SQL w kursorze kursor.
PROCEDURE DBMS_SQL.CLOSE_CURSOR (kursor IN OUT INTEGER);
Zamyka kursor kursor.
PROCEDURE DBMS_SQL.COLUMN_VALUE
(kursor IN INTEGER, pozycja IN INTEGER, wartość OUT NUMBER | VARCHAR | DATE | BLOB | CLOB CHARACTER SET ANY_CS | BFILE | MLSLABEL
[,błąd_kolumny OUT NUMBER
[,rzeczywista_długosć OUT INTEGER]]);
Przenosi zawartość kolumny numer pozycja w liście polecenia SELECT z pobranego kursora kursor do zmiennej wartość, opcjonalnie ustawiając rzeczywista_długość na długość w bajtach przed obcięciem oraz błąd_kolumny na kod błędu dla określonej wartości. Obcięcie może być skutkiem różnicy w rozmiarze pobranej wartości w kursorze i rozmiarze zmiennej. MLSLABEL może być stosowane jedynie dla systemu Trusted Oracle.
PROCEDURE DBMS_SQL.COLUMN_VALUE (kursor IN INTEGER, pozycja IN INTEGER, <parametr_tabeli IN typ_tabeli>);
Przenosi zawartość kolumny numer pozycja, typu tablica w liście polecenia SELECT z pobranej tablicy z kursora kursor do tabeli PL/SQL. Tylko dla systemu Oracle8, parametr_tabeli i typ_tabeli może przyjmować wartość:
n_tab IN DBMS_SQL.NUMBER_TABLE
c_tab IN DBMS_SQL.VARCHAR2_TABLE
d_tab IN DBMS_SQL.DATE_TABLE
bl_tab IN DBMS_SQL.BLOB_TABLE
cl_tab IN DBMS_SQL.CLOB_TABLE
bf_tab IN DBMS_SQL.BFILE_TABLE
PROCEDURE DBMS_SQL.COLUMN_VALUE_CHAR
(kursor IN INTEGER, pozycja IN INTEGER, wartość OUT CHAR CHARACTER SET ANY_CS
[,błąd_kolumny OUT NUMBER
[,rzeczywista_długość OUT INTEGER]]);
Przenosi zawartość kolumny numer porcja w liście polecenia SELECT pobranego kursora kursor do zmiennej CHAR/ NCHAR wartość, opcjonalnie ustawiając rzeczywista_dlugość na długość w bajtach przed obcięciem oraz błąd_columny na kod błędu dla określonej wartości. Obcięcie może być skutkiem różnicy w rozmiarze pobranej wartości w kursorze i rozmiarze zmiennej.
PROCEDURE DBMS_SQL.COLUMN_VALUE_LONG
(kursor IN INTEGER, pozycja IN INTEGER, długość IN INTEGER, offset IN INTEGER, wartość OUT VARCHAR2, długość_wartości OUT INTEGER);
Przenosi zawartość kolumny numer pozycja w liście polecenia SELECT pobranego kursora kursor do zmiennej wartość VARCHAR2, rozpoczynając od pozycji offset w bajtach w kolumnie LONG i długości długość bajtów. Ustawia również długość_wartości na rzeczywistą długość pobranej wartości.
PROCEDURE DBMS_SQL.COLUMN_VALUE_RAW
(kursor IN INTEGER, pozycja IN INTEGER, wartość OUT RAW
[, błąd_kolumny OUT NUMBER
[,długość_kolumny OUT INTEGER]]);
Przenosi zawartość kolumny numer pozycja w liście polecenia SELECT z pobranego kursora kursor do zmiennej RAW wartość, opcjonalnie ustawiając rzeczywista_dtugość na długość w bajtach przed obcięciem oraz bląd_kolumny na kod błędu dla określonej wartości. Obcięcie może być skutkiem różnicy w rozmiarze pobranej wartości w kursorze i rozmiarze zmiennej.
PROCEDURE DBMS_SQL.COLUMN_VALUE_ROWID
(kursor IN INTEGER, pozycja IN INTEGER,
wartość OUT ROWID
[,column_error OUT NUMBER
[,actuai_length OUT INTEGER]]);
Przenosi zawartość kolumny numer pozycja w liście polecenia SELECT z pobranego kursora kursor do zmiennej ROWID wartość, opcjonalnie ustawiając rzeczywista_długość na długość w bajtach przed obcięciem oraz błąd_kolumny na kod błędu dla określonej wartości. Obcięcie może być skutkiem różnicy w rozmiarze pobranej wartości w kursorze i rozmiarze zmiennej.
PROCEDURE DBMS_SQL.DEFINE_ARRAY
( kursor IN INTEGER, pozycja IN INTEGER, <parametr_tabeli IN typ_tabeli>, liczba IN INTEGER, dolna_granica IN INTEGER);
Definiuje typ danych i rozmiar elementów tablicy pobierania dla kolumny numer pozycja w liście polecenia SELECT kursora kursor jako taki sam typ danych i rozmiar tabeli zagnieżdżonej parametr_tabeli, rozpoczynając od wiersza dolna_granica, przy maksymalnym rozmiarze tablicy liczba wierszy. Tylko dla systemu Oracle8, parametr_tabeli i typ_tabeli może przyjmować wartość:
n_tab IN DBMS_SQL.NUMBER_TABLE
c_tab IN DBMS_SQL.VARCHAR2_TABLE
d_tab IN DBMS_SQL.DATE_TABLE
bl_tab IN DBMS_SQL.BLOB_TABLE
cl_tab IN DBMS_SQL.CLOB_TABLE
bf_tab IN DSMS_SQL.BFILE_TABLE
PROCEDURE DBMS_SQL.DEFINE_COLUMN
(kursor IN INTEGER,
pozycja IN INTEGER,
kolumna IN NUMBER | DATE | BLOB | CLOB CHARACTER SET ANY_CD | BFILE | MLSLABEL);
Zmienna lub wyrażenie kolumna definiuje typ danych dla kolumny numer pozycja w liście polecenia SELECT kursora kursor. MLSLABEL może występować jedynie dla systemu Trusted Oracle.
PROCEDURE DBMS_SQL.DEFINE_COLUMN
(kursor IN INTEGER,
pozycja IN INTEGER,
kolumna IN VARCHAR2 CHARACTER SET ANY_CS,
rozm_kolumny IN INTEGER);
Zmienna lub wyrażenie kolumna definiuje typ danych jako VARCHAR2/NVARCHAR2, a rozmiar jako rozm_kolumy w znakach dla kolumny numer pozycja w liście polecenia SELECT kursora kursor.
PROCEDURE DBMS_SQL.DEFINE_COLUMN_CHAR
(c IN INTEGER, pozycja IN INTEGER, kolumna IN CHAR CHARACTER SET AHY_CS,
rozm_kolumny IN INTEGER);
Zmienna lub wyrażenie kolumna definiuje typ danych jako CHAR/NCHAR. a rozmiar jako rozm_kolumny w znakach dla kolumny numer pozycja w liście polecenia SELECT kursora kursor.
PROCEDURE DBMS_SQL.DEFINE_COLUMN_LONG
(kursor IN INTEGER, pozycja IN INTEGER);
Definiuje typ danych jako LONG dla kolumny numer pozycja w liście polecenia SELECT kursora kursor.
PROCEDURE DBMS_SQL.DEFINE_COLUMN_RAW
(kursor IN INTEGER, pozycja IN INTEGER, kolumna IN RAW, rozm_kolumny IN INTEGER);
Zmienna lub wyrażenie kolumna definiuje typ danych jako RAW, a rozmiar jako rozm_kolumny dla kolumny numer pozycja w liście polecenia SELECT kursora kursor.
PROCEDURE DBMS_SQL.DEFINE_COLUMN_ROWID
(kursor IN INTEGER, pozycja IN INTEGER, kolumna IN ROWID);
Zmienna lub wyrażenie kolumna definiuje typ danych jako ROWID dla kolumny numer pozycja w liście polecenia SELECT kursora kursor.
PROCEDURE DBMS_SQL.DESCRIBE_COLUMNS
(kursor IN INTEGER, ilość_kolumn OUT INTEGER, tabela_opisu OUT DESC_TAB);
Wypełnia tabele PL/SQL SQL tabela_opisu typu DBMS_SQL.DESC REC opisem kolumn kursora kursor. ilość_kolumn określa liczbę kolumn kursora kursor oraz liczbę wierszy tabeli tabela_opisu.
FUNCTION DBMS_SQL.EXECUTE
(kursor IN INTEGER)
RETURN INTEGER;
Dla poleceń 1NSERT, UPDATE oraz DELETE zwraca ilość wierszy wyniku wykonania kursora kursor. Dla wszystkich pozostałych poleceń SQL wykonuje kursor i zwraca wartość nieokreśloną.
FUNCTION DBMS_SQL.EXECUTE_AND_FETCH
(kursor IN INTEGER,
dokładnie jeden IN BOOLEAN DEFAULT FALSE)
RETURN INTEGER;
Zwraca ilość pobranych wierszy po wykonaniu kursora kursor. Gdy parametr dokładnie_jeden ma wartość TRUE, a wykonanie zwróci więcej niż jeden wiersz, to wystąpi wyjątek. By uzyskać wiele wierszy, wymagany jest system Oracle8 oraz przetwarzanie tablicowe.
FUNCTION DBMS_SQL.FETCH_ROWS
(kursor IN INTEGER)
RETURN INTEGER;
Pobiera i zwraca ilość wierszy pobranych z kursora kursor lub wartość zero, jeśli nie ma więcej wierszy do pobrania.
FUNCTION DBMS_SQL.IS_OPEN
(kursor IN INTEGER)
RETURN BOOLEAN;
Zwraca wartość TRUE, jeśli kursor jest otwarty, lub FALSE w przeciwnym przypadku.
FUNCTION DBMS_SQL.LAST_ERROR_POSITICN
RETURN INTEGER;
Zwraca pozycję w bajtach w poleceniu SQL, gdzie wystąpił ostatni błąd. Musi zostać wywołana natychmiast po EXECUTE lub EXECUTE_AND_FETCH (zwykle w programie obsługi wyjątku).
FUNCTION DBMS_SQL.LAST_ROW_COUNT
RETURN INTEGER;
Zwraca całkowitą ilość pobranych; jest podobna do atrybutu %ROWCOUNT statycznego kursora.
FUNCTION DBMS_SQL.LAST_ROW_ID
RETURN ROWID;
Zwraca wartość ROWID ostatnio pobranego wiersza. Musi zostać wywołana natychmiast po EXECUTE lub EXECUTE_AND_FETCH.
FUNCTION DBMS_SQL.LAST_SQL_FUNCTION_CODE
RETURN INTEGER;
Zwraca kod funkcji SQL dla polecenia SQL. Pełna lista kodów funkcji znajduje się w dokumentacji Oracle Corporation’s Server Reference Manual w sekcji poświęconej kolumnie tabeli V$SESSION.COMMAND.
FUNCTION DBMS_SQL.OPEN_CURSOR
RETURN INTEGER;
Zwraca wskaźnik typu INTEGER do obszaru pamięci zaalokowanego na dynamiczny kursor.
PROCEDURE DBMS_SQL.PARSE (kursor IN INTEGER, polecenie IN VARCHAR2, flaga_języka IN INTEGER);
Realizuje operację parsowania polecenia SQL o rozmiarze mniejszym od 32 kB (w bajtach) i powiązuje je z kursorem kursor, korzystając z mechanizmów określonych parametrem flaga_języka (DBMS_SQL.NATIVE, DBMS_SQL.V7 lub DBMS_SQL.V6). Nie należy kończyć tekstów polecenia SQL znakiem średnika, chyba że jest to blok PL/SQL. Dla poleceń DDL (np. TRUNCATE TABLE) procedura powoduje wykonanie polecenia.
PROCEDURE DBMS_SQL.PARSE
(kursor IN INTEGER,
polecenie IN VARCHAR2S,
wiersz1 IN INTEGER,
wiersz2 IN INTEGER,
nowa_linia IN BOOLEAN,
flaga_języka IN INTEGER);
Realizuje operację parsowania polecenia SQL zawartego w wierszach od wiersz1 do wiersz2 w tablicy PL/SQL i powiązuje je z kursorem kursor, korzystając z mechanizmów określonych parametrem flaga_języka (DBMS_SQL.NATIVE, DBMS_SQL.V7 lub DBMS_SQL.V6). Dołącza znak nowej linii po każdym wierszu, jeśli parametr nowa_linia ma wartość TRUE.
PROCEDURE DBMS_SQL.VARIABLE_VALUE
(kursor IN INTEGER, nazwa IN VARCHAR2,
wartość OUT NUMBER | VARCHAR2 | DATE | BLOB | CLOB CHARACTER SET ANY_CS | BFILE | MLSLABEL);
Pobiera wartość zmiennej nazwa kursora kursor do zmiennej PL/SQL wartość. MLSLABEL może być używany jedynie dla systemu Trusted Oracle.
PROCEDURE DBMS_SQL.VARIABLE_VALUE
(kursor IN INTEGER,
nazwa IN VARCHAR2,
wartość IN <typ_tabeli>);
Pobiera wartość zmiennej nazwa kursora kursor do tabeli PL/SQL wartość. Tylko dla systemu Oracle8, typ_tabeli może być:
DBMS_SQL.NUMBER_TABLE
DBMS_SQL.VARCHAR2_TABLE
DBMS_SQL.DATE_TABLE
DBMS_SQL.BLOB_TABLE
DBMS_SQL.CLOB_TABLE
DBMS_SQL.BFILE_TABLE
PROCEDURE DBMS_SQL.VARIABLE_VALUE_CHAR
(kursor IN INTEGER, nazwa IN VARCHAR2, wartość OUT CHAR CHARACTER SET ANY_CS);
Pobiera wartość zmiennej nazwa kursora kursor do zmiennej CHAR/NCHAR PL/SQL wartość.
PROCEDURE DBMS_SQL.VARIABLE_VALUE_RAW
(kursor IN INTEGER,
nazwa IN VARCHAR2,
wartość OUT RAW);
Pobiera wartość zmiennej nazwa kursora kursor do zmiennej RAW wartość.
PROCEDURE DBMS_SQL.VARIABLE_VALUE_ROWID
(kursor IN INTEGER,
nazwa IN VARCHAR2,
wartość OUT ROWID);
Pobiera wartość zmiennej nazwa kursora kursor do zmiennej ROWID wartość.
DBMS_STANDARD
Pakiet DBMS_STANDARD zawiera rozszerzenia pakietu STANDARD. Są to funkcje i procedury do użytku w wyzwalaczach do obsługi transakcji. Te funkcje i procedury, podobnie jak w pakiecie STANDARD, nie wymagają kwalifikacji właściciel czy nazwa pakietu i zwykle są traktowane jako część języka PL/SQL.
PROCEDURE DBMS_STANDARD.RAISE_APPLICATION_ERROR
(numer BINARY_INTEGER,
komunikat VARCHAR2,
zachowaj_stos_błędu boolean default FALSE);
Wywołuje z programu magazynowanego wyjątek PL/SQL numer z tekstem komunikatu komunikat. Błąd może zostać umieszczony z innymi błędami na stosie, jeśli parametr zachowaj_stos_błędu ma wartość TRUE; domyślnie zawartość stosu jest zapisywana dla pojedynczego wyjątku. Parametr numer ma zakres od -20999 do -20000. a komunikat może mieć rozmiar maksymalnie do 2048 bajtów.
FUNCTION INSERTING RETURN boolean;
FUNCTION DELETING RETURN boolean;
FUNCTION UPDATING RETURN boolean;
FUNCTION UPDATING (nazwa_kolumny VARCHAR2)
RETURN boolean;
Predykaty warunkowe używane do określenia rodzaju operacji Data Manipulation Language (DML). która spowodowała wyzwolenie wyzwalacza. Funkcje te mają zastosowanie jedynie w obrębie wyzwalaczy, na przykład „...IF INSERTING THEN...”
PROCEDURE COMMIT;
PROCEDURE COMMIT_CM (vc VARCHAR2);
PROCEDURE ROLLBACK_NR;
PROCEDURE ROLLBACK_SV(punkt_zachowania VARCHAR2);
PROCEDURE SAVEPOINT(punkt_zachowania VARCHAR2);
PROCEDURE SET_TRANSACTION_USE(vc VARCHAR2);
Procedury te obsługują mechanizm transakcji. Są analogiczne do poleceń SQL: COMMIT, COMMIT COMMENT, ROLLBACK, ROLLBACK TO SAVEPOINT, SAVEPOINT oraz SET TRANSACTION USE ROLLBACK SEGMENT.
Pakiet DBMS SYSTEM zawiera procedury obsługujące mechanizmy śledzenia wewnętrznych zdarzeń, co obejmuje śledzenie SQL na poziomie sesji.
PROCEDURE DBMS_SYSTEM.READ_EV
( zdarzenie_we BINARY_INTEGER, zdarzenie_wy OUT BINARY_INTEGER);
Zwraca w zmiennej zdarzenie_wy ustawienia poziomu zdarzenia dla bieżącej sesji dla zdarzenia śledzenia numer zdarzenie_we.
PROCEDURE DBMS_SYSTEM.SET_EV
(sid BINARY_INTEGER,
num_ser BINARY_INTEGER,
zdarzenie BINARY_INTEGER,
poziom BINARY_INTEGER, nazwa IN VARCHAR2);
Ustawia poziom dla zdarzenia numer zdarzenie w sesji identyfikowanej przez wartość sid i numer seryjny num_ser na podaną wartość poziom. Zmienna nazwa określa nazwę zdarzenia.
PROCEDURE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION
(sid IN NUMBER,
num_ser IN NUMBER,
śledzenie_sql IN BOOLEAN);
Włącza lub wyłącza śledzenie SQL dla sesji identyfikowanej przez sid i numer seryjny num_ser zgodnie z wartością parametru śledzenie_sql (TRUE = włącza; FALSE = wyłącza).
DBMS_ TRANSACTION
Pakiet DBMS TRANSACTION zawiera szereg programów do obsługi i zarządzania transakcjami lokalnymi i rozproszonymi.
PROCEDURE DBMS_TRANSACTION.ADVISE_COMMIT;
Zaleca odległym bazom danych wykonanie zatwierdzenia wątpliwych transakcji rozproszonych (ang. in-doubt distributed transactions), jeśli jest to możliwe.
PROCEDURE DBMS_TRANSACTION.ADVISE_NOTHING;
Usuwa zalecenia dla odległych baz danych związane z wątpliwymi transakcjami rozproszonymi.
PROCEDURE DBMS_TRANSACTION.ADVISE_ROLLBACK;
Zaleca odległym bazom danych wykonanie wycofania wątpliwych transakcji rozproszonych (ang. in-doubt distributed transactions).
PROCEDURE DBMS_TRANSACTION.BEGIN_DISCRETE_TRANSACTION;
Wymusza użycie mechanizmu dyskretnego przetwarzania transakcji dla bieżącej transakcji.
PROCEDURE DBMS_TRANSACTION.COMMIT;
Realizuje zatwierdzenie bieżącej transakcji.
PROCEDURE DBMS_TRANSACTION.COMMIT_COMMENT
(kom IN VARCHAR2);
Zatwierdza bieżącą transakcję i przesyła kom jako komentarz wątpliwej transakcji do odległych baz danych podczas rozproszonych transakcji.
PROCEDURE DBMS_TRANSACTION.COMMIT_FORCE
(id IN VARCHAR2 [,scn IN VARCHAR2 DEFAULT NULL)];
Wymusza zatwierdzenie lokalnej części wątpliwej rozproszonej transakcji identyfikowanej przez identyfikator transakcji id i opcjonalnie przez numer SCN (System Change Number) scn.
FUNCTION DBMS_TRANSACTION.LOCAL_TRANSACTION_ID
(twórz_transakcję IN BOOLEAN := FALSE)
RETURN VARCHAR2;
Zwraca unikatowy identyfikator Oracle dla bieżącej transakcji, opcjonalnie tworząc nową transakcję, jeśli parametr twórz_transakcję ma wartość TRUE.
PROCEDURE DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY
(id IN VARCHAR2);
Wymusza w systemie Oracle usunięcie wszystkich lokalnych wpisów dla transakcji rozproszonej identyfikowanej przez id w przypadku, gdy uczestniczący w transakcji węzeł został nieodwracalnie utracony.
PROCEDURE DBMS_TRANSACTION.PURGE_MIXED
(id IN VARCHAR2);
Wymusza w systemie Oracle usunięcie lokalnych wpisów dla mieszanej wychodzącej transakcji rozproszonej identyfikowanej lokalnie przez id.
PROCEDURE DBMS_TRANSACTION.READ_ONLY;
Zapewnia spójność odczytu na poziomie transakcji, gdzie wszystkie zapytania zwracają spójne względem odczytu obrazy danych z momentu czasu rozpoczęcia transakcji.
PROCEDURE DBMS_TRANSACTION.READ_WRITE;
Zapewnia spójność odczytu na poziomie polecenia, jest to domyślne ustawienie.
PROCEDURE DBMS_TRANSACTION.ROLLBACK;
Wycofuje bieżącą transakcję.
PROCEDURE DBMS_TRANSACTION.ROLLBACK_FORCE
(id IN VARCHAR2);
Wycofuje lokalną część wątpliwej transakcji rozproszonej identyfikowanej przez id.
PROCEDURE DBMS_TRANSACTION.ROLLBACK_SAVEPOINT
(pkt_zachowania IN VARCHAR2);
Wycofuje bieżącą transakcję do punktu zachowania pkt_zachowania.
PROCEDURE DBMS_TRANSACTIOM.SAVEPOINT
(pkt_zachowania IN VARCHAR2);
Wstawia punkt zachowania o nazwie pkt_zachowania dla bieżącej transakcji.
FUNCTION DBMS_TRANSACTION.STEP_ID RETURN NUMBER;
Zwraca unikatową wartość całkowitą dodatnią, która porządkuje operacje DML dla bieżącej transakcji.
PROCEDURE DBMS_TRANSACTION.USE_ROLLBACK_SEGMENT
(seg IN VARCHAR2);
Przydziela bieżącą transakcje do segmentu wycofania o nazwie seg.
DBMS_UTILITY
Pakiet DBMS_UTILITY zawiera wiele procedur i funkcji pomocnych przy wykonywaniu różnych zadań, takich jak: rozbiór semantyczny i syntaktyczny nazw kwalifikowanych, uzyskiwanie informacji o konfiguracji bazy danych, analiza obiektów, uzyskiwanie informacji ze stosu błedy i wywołania oraz profilowanie czasu wykonania kodu.
PROCEDURE DBMS_UTILITY.ANALYZE_DATABASE
(metoda IN VARCHAR2,
estymowane_wiersze IN NUMBER DEFAULT NULL, estymowany_procent IN NUMBER DEFAULT NULL,
metoda_opt IN VARCHAR2 DEFAULT NULL);
Wykonuje analizę wszystkich tabel, klastrów oraz indeksów przy użyciu metody metoda_opt (ESTIMATE, NULL lub DELETE). Gdy metodą jest ESTIMATE. to do oszacowania rozmiaru próbki musi zostać określona jedna z wartości estymowane_wiersze lub estymowany_procent. Dodatkowe opcje analizy, które mogą być określone przez metoda_opt, to: FOR TABLE. FOR ALL COLUMNS [SIZE N], FOR ALL INDEXED COLUMNS [SIZE N] oraz FOR ALL INDEXES.
(schemat IN VARCHAR2 DEFAULT NULL,
nazwa_obiektu IN VARCHAR2 DEFAULT NULL,
typ_obiektu IN CHAR DEFAULT 'T',
typ_polecenia IN CHAR DEFAULT 'E',
opcje_polecenia IN VARCHAR2 DEFAULT NULL,
klauzula IN VARCHAR2 DEFAULT 'SAMPLE 5 PERCENT');
Wykonuje analizę partycjonowanej tabeli lub indeksu nazwa_obiektu w schemacie schemat, typu typ_obiektu (T = tabela. I = index) w trybie równoległym przy użyciu procesów kolejki zadań, typ_polecenia określa rodzaj wykonywanej analizy, a opcje_polecenia definiują dodatkowe opcje. klauzula określa rozmiar próbki, gdy typ_polecenia ma wartość E (estymacja) i ma postać „SAMPLE N ROWS” lub ,.SAMPLE N PERCENT”. Tylko dla systemu Oracle8.
Dopuszczalne wartości dla typ_polecenia to: C dla statystyk obliczanych, E dla statystyk estymowanych, D dla usunięcia statystyk oraz V dla walidacji struktury.
Dopuszczalne wartości opcje_polecenia dla typ_polecenia C lub T to: FOR TABLE, FOR ALL LOCAL INDEXES, FOR ALL COLUMNS lub dowolna kombinacja dla opcji FOR polecenia ANALYZE.
Dopuszczalne wartości opcje_polecenia dla typ_polecenia V to: CASCADE, gdy typ_obiektu to T (tabela).
PROCEDURE DBMS_UTILITY.ANALYZE_SCHEMA (schemat IN VARCHAR2, metoda IN VARCHAR2,
estymowane_wiersze IN NUMBER DEFAULT NULL, estymowany_procent IN NUMBER DEFAULT NULL,
metoda_opt IN VARCHAR2 DEFAULT NULL);
Wykonuje analizę wszystkich tabel, klastrów i indeksów w schemacie schemat przy użyciu metody metoda (ESTIMATE, NULL lub DELETE).Gdy metoda to ESTIMATE, jeden z parametrów estymowana_wiersze lub estymowany_procent musi zostać określony w celu określenia rozmiaru próbki. Dodatkowe opcje analizy, określone przez parametr metoda_opt, to: FOR. TABLE, FOR ALL COLUMNS [SIZE N], FOR ALL INDEXED COLUMNS [SIZE N] oraz FOR. ALL INDEXES.
PROCEDURE DBMS_UTILITY.COMMA_TO_TABLE
(lista IN VARCHAR2,
rozm OUT BINARY_INTEGER,
tabela OUT UNCL_ARRAY);
Wykonuje rozkład listy lista elementów rozdzielonych przecinkiem i zwraca elementy w tabeli PL/SQL tabela typu DBMS_UTILITY.UNCL_ ARRAY. Liczba wierszy tabeli jest zwracana w parametrze rozm.
PROCEDURE DBMS_UTILITY.COMPILE_SCHEMA
(schemat IN VARCHAR2);
Kompiluje wszystkie magazynowane programy PL/SQL (procedury, funkcje oraz pakiety) należące do schematu schemat.
FUNCTION DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK
(dba IN NUMBER)
RETURN NUMBER;
Zwraca wartość offsetu bloku o adresie DBA bloku określonego przez dba.
FUNCTION DBMS UTILITY.DATA_BLOCK_ADDRESS_FILE
(dba IN NUMBER)
RETURN NUMBER;
Zwraca składnik numeru pliku adresu DBA bloku określonego przez dba.
PROCEDURE DBMS_UTILITY.DB_VERSION
(wersja OUT VARCHAR2, zgodność OUT VARCHAR2);
Zwraca wersję bazy danych systemu Oracle w wersja oraz wartość parametru COMPATIBLE pliku INIT.ORA (lub NULL). Tylko dla systemu Oracle8.
PROCEDURE DBMS_UTILITY.EXEC_DDL_STATEMENT
(polecenie IN VARCHAR2);
Wykonuje polecenie DDL podane w parametrze polecenie (tylko dla systemu Oracle8).
FUNCTION DBMS_UTILITY.FORMAT_CALL_STACK
RETURN VARCHAR2;
Zwraca bieżącą informację ze stosu wywołania PL/SQL w postaci sformatowanego łańcucha znakowego.
FUNCTION DBMS_UTILITY.FORMAT_ERROR_STACK
RETURN VARCHAR2;
Zwraca bieżącą informację ze stosu błędu PL/SQL w postaci sformatowanego łańcucha znakowego.
FUNCTION DBMS_UTILITY.GET_HASH_VALUE
(nazwa IN VARCHAR2,
baza IN NUMBER,
rozm_hash IN NUMBER)
RETURN NUMBER;
Zwraca wartość funkcji haszującej dla nazwa dla minimalnej możliwej wartości baza, korzystając z tablicy haszującej o rozmiarze rozm_hash.
FUNCTION DBMS_UTILITY.GET_PARAMETER_VALUE
(nazwa_par IN VARCHAR2,
wart_pocz IN OUT BINARY_INTEGER,
wart_str IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
Zwraca informacje o bieżących ustawieniach parametru konfiguracyjnego bazy danych nazwa_par (INIT.ORA). Tylko dla systemu Oracle8.
wart_pocz zwraca następujące wartości:
• wartość parametru nazwa_par typu numerycznego:
• długość łańcucha parametru nazwa_par.
• 0 dla FALSE i 1 dla TRUE. gdy parametr nazwa_par jest typu boolean.
wart_str zwraca NULL lub wartość parametru typu znakowego 0, jeśli parametr jest typu boolean lub numerycznego; 1 jeśli parametr jest łańcuchem znakowym.
FUNCTION DBMS_UTILITY.GET_TIME
RETURN NUMBER;
Zwraca wartość określającą liczbę 1/100 sekundy, jakie upłynęły od (nieokreślonego) arbitralnie określonego punktu czasowego w przeszłości.
FUNCTION DBMS_UTILITY.IS_PARALLEL_SERVER
RETURN BOOLEAN;
Zwraca TRUE, jeśli instancja działa w trybie serwera równoległego, oraz FALSE w przeciwnym przypadku.
FUNCTION DEMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS
(plik IN NUMBER,
blok IN NUMBER)
RETURN NUMBER;
Zwraca poprawny adres bloku danych DBA dla pliku plik i offsecie bloku blok.
PROCEDURE DBMS_UTILITY.NAME_RESOLVE
(nazwa IN VARCHAR2,
kontekst IN NUMBER, schemat OUT VARCHAR2,
częśćl OUT VARCKAR2,
część2 OUT VARCKAR2,
dblink OUT VARCHAR2, czescl_typ OUT NUMBER, numer_obiektu OUT NUMBER);
Rozkłada nazwę kwalifikowaną i zwraca określoną informację identyfikacyjną o obiekcie kwalifikowanym: schemat to właściciel obiektu, część1 to nazwa obiektu lub nazwa pakietu dla pakietu, część2 to nazwa programu, gdy obiekt jest pakietem, dblink to łącze bazy danych, jeśli nazwa odnosi się do odległego obiektu, część1_typ określa typ obiektu, numer_obiektu jest numerem lokalnego obiektu lub NULL, jeśli nazwa nie mogła zostać w pełni rozłożona lokalnie.
Część1_typ ma wartość 5, jeśli obiekt to synonim. 7 - jeśli obiekt to procedura, 8 - jeśli obiekt to funkcja, 9 - jeśli obiekt to pakiet.
Parametr kontekst musi mieć wartość 1.
PROCEDURE DBMS_UTILITY.NAME_TOKENIZE
(nazwa IN VARCHAR2,
a OUT VARCHAR2,
b OUT VARCHAR2,
c OUT VARCHAR2,
dblink OUT VARCHAR2,
nastepna_poz OUT BINARY_INTEGER);
Wykorzystuje parser PL/SQL do rozkładu nazwy kwalifikowanej na atomowe składowe zgodnie z następującym formatem:
a [ . b [ . c] ] [@dblink ]
nastepna_poz określa pozycję początkową następnego elementu.
FUNCTION DBMS_UTILITY.PORT_STRING
RETURN VARCHAR2;
Zwraca łańcuch znakowy zawierający specyficzną dla systemu operacyjnego informację, identyfikującą wersję działającego systemu Oracle.
PROCEDURE DBMS_UTILITY.TABLE_TO_COMMA
(tablica IN UNCL_ARRAY, rozm_tab OUT BINARY_INTEGER, lista OUT VARCHAR2);
Dokonuje konwersji tablicy PL/SQL tablica typu DBMS_ UTILITY.UNCL_ARRAY na łańcuch znakowy rozdzielony przecinkami i umieszcza go w lista wraz z ilością przetworzonych wierszy zwracanych w rozm_tab.
UTL_FILE
Pakiet UTL_FILE umożliwia odczytywanie i zapisywanie plików systemu operacyjnego serwera, na jakim pracuje baza danych Oracle z programów PL/SQL.
PROCEDURE UTL_FILE.FCLOSE
(plik IN OUT FILE_TYPE);
Zamyka plik identyfikowany przez uchwyt pliku plik i ustawia wartość id pliku na NULL.
PROCEDURE UTL_FILE.FCLOSE_ALL;
Zamyka wszystkie otwarte pliki, przy czym pole id uchwytu pliku nie zostanie ustawione na wartość NULL.
PROCEDURE UTL_FILE.FFLUSH
(plik IN FILE_TYPE);
Wymusza natychmiastowe zapisanie zawartości bufora danych dla pliku plik.
FUNCTION UTL_FILE.FOPEN
(położenie IN VARCHAR2, nazwa_pliku IN VARCHAR2, tryb otwarcia IN VARCHAR2;
RETURN FILE_TYPE;
Zwraca uchwyt pliku typu UTL_FILE.FILE_TYPE po pomyślnym otwarciu pliku nazwa_pliku znajdującego się w katalogu położenie w trybie tryb_otwarcia lub wywołuje wyjątek.
Dopuszczalne tryby otwarcia to:
R = otwiera plik w trybie tylko-do-odczytu.
W = otwiera plik w trybie zapisu i nadpisuje zawartość.
A = otwiera plik w trybie zapisu i dopisuje zawartość.
Dopuszczalne wartości parametru położenie określa parametr pliku konfiguracyjnego Oracle UTL_FILE_DIR.
PROCEDURE UTL_FILE.GET_LINE
(plik IN FILE_TYPE,
bufor OUT VARCHAR2);
Odczytuje kolejną linię pliku plik do bufora bufor. Wywołuje wyjątek NO_DATA_FOUND, gdy osiągnięto koniec pliku lub VALUE_ERROR, gdy wielkość bufora jest za mała.
FUNCTION UTL_FILE.IS_OPEN
(plik IN FILE_TYPE)
RETURN BOOLEAN;
Zwraca wartość TRUE, jeśli uchwyt pliku plik jest otwarty w dowolnym trybie, lub FALSE w przeciwnym przypadku.
PROCEDURE UTL_FILE.NEW_LINE
(plik IN FILE_TYPE, ile IN NATURAL := 1);
Zapisuje ile znaków nowej linii w pliku plik.
PROCEDURE UTL_FILE.PUT
(plik IN FILE_TYPE,
bufor IN VARCHAR2);
Zapisuje dane z bufora do pliku plik bez znaku końca nowej linii.
PROCEDURE UTL_FILE.PUT_LINE
(plik IN FILE_TYPE,
bufor IN VARCHAR2);
Zapisuje dane z bufora do pliku plik, dołączając znak końca nowej linii.
PROCEDURE UTL_FILE.PUTF
(plik IN FILE_TYPE,
format IN VARCHAR2,
argl IN VARCHAR2 DEFAULT NULL,
arg2 IN VARCHAR2 DEFAULT NULL,
arg3 IN VARCHAR2 DEFAULT NULL,
arg4 IN VARCHAR2 DEFAULT NULL,
arg5 IN VARCHAR2 DEFAULT NULL);
Zapisuje sformatowany tekst do pliku plik przy użyciu szablonu format, podmieniając maksymalnie pięć elementów %s formatu na wartości argl ... arg5.format może zawierać następujące elementy:dowolny tekst, %s oznaczający podmianę argN (do pięciu argumentów) lub %n oznaczający nową linię (dowolna wartość jest dozwolona).
UTL_RAW
Pakiet UTL_RAW zawiera podprogramy obsługujące dostęp do danych typu RAW. Zapewniają one konwersję, dzielenie, łączenie i operacje bitowe na obiektach typu RAW.
FUNCTION UTL_RAW.BIT_AND
(rl IN RAW,
r2 IN RAW) RETURN RAW;
Zwraca wartość bitowego logicznego 1 wartości r1 i r2.
FUNCTION UTL_RAW.BIT_COMPLEMENT
(r1 IN RAW,
r2 IN RAW) RETURN RAW;
Zwraca wartość bitowego logicznego dopełniania wartości
r1 i r2.
FUNCTION UTL_RAW.BIT_OR
(r1 IN RAW,
r2 IN RAW) RETURN RAW;
Zwraca wartość bitowego logicznego LUB wartości r1 i r2.
FUNCTION UTL_RAW.BIT_XOR
(r1 IN RAW,
r2 IN RAW) RETURN RAW;
Zwraca wartość bitowego logicznego XOR (wyłącznie-lub) wartości r1 i r2.
FUNCTION UTL_RAW.CAST_TO_RAW
(c IN VARCHAR2) RETURN RAW;
Dokonuje konwersji typu VARCHAR2 wartości c na RAW.
FUNCTION UTL_RAW.CAST_TO_VARCHAR2
(r IN RAW) RETURN VARCHAR2;
Dokonuje konwersji typu RAW wartości r na VARCHAR2.
FUNCTION UTL_RAW.COMPARE
(rl IN RAW,
r2 IN RAW,
dop IN RAW DEFAULT NULL) RETURN NUMBER;
Zwraca wartość 0, jeśli rl oraz r2 są identyczne. Zwraca pozycję pierwszego bajta wystąpienia różnicy między r1 i r2.
Jeśli r1 i r2 mają różne wielkości, następuje dopełnienie z prawej strony wartością dop.
FUNCTION UTL_RAW.CONCAT
(r1 IN RAW DEFAULT NULL,
r2 IN RAW DEFAULT NULL,
r3 IN RAW DEFAULT NULL,
r4 IN RAW DEFAULT NULL,
r5 IN RAW DEFAULT NULL,
r6 IN RAW DEFAULT NULL,
r7 IN RAW DEFAULT NULL,
r8 IN RAW DEFAULT NULL,
r9 IN RAW DEFAULT NULL,
rlO IN RAW DEFAULT NULL,
rll IN RAW DEFAULT NULL,
rl2 IN RAW DEFAULT NULL)
RETURN RAW;
Zwraca wynik konkatenacji argumentów r1... r12. Rezultat musi być mniejszy od 32 kB. Parametry od r3 do r12 są opcjonalne.
FUNCTION UTL_RAW.CONVERT
(r IN RAW,
wyj_charset IN VARCHAR2,
wej_charset IN VARCHAR2)
RETURN RAW;
Zwraca wartość r po konwersji z zestawu znaków wej_charset na zestaw wyj_charset. wej_charset oraz wyj_charset to zestawy znaków NLS.
FUNCTION UTL_RAW.COPIES
(r IN RAW,
n IN NUMBER) RETURN RAW;
Realizuje n-krotną konkatenację wartości r i zwraca wynik operacji.
FUNCTION UTL_RAW.LENGTH
(r IN RAW) RETURN NUMBER;
Zwraca ilość bajtów dla parametru r.
FUNCTION UTL_RAW.OVERLAY
(nakładka IN RAW,
cel IN RAW,
poz IN BINARY INTEGER DEFAULT 1,
długość IN BINARY_INTEGER DEFAULT NULL, dop IN RAW DEFAULT NULL)
RETURN RAW;
Zwraca wartość cel nadpisaną wartością nakładka, począwszy od pozycji startowej poz na długości długość bajtów, dopełniając z prawej strony wartością dop, jeśli jest taka potrzeba. Jeśli wartość poz jest większa od rozmiaru cel, następuje dopełnienie wartoscią pad.
FUNCTION UTL_RAW.REVERSE
(r IN RAW)
RETURN RAW;
Zwraca bajtową zawartość r w odwrotnym porządku.
FUNCTION UTL_RAW.SUBSTR
(r IN RAW,
poz IN BINARY_INTEGER,
długość IN BINARY_INTEGER DEFAULT NULL) RETURN RAW;
Zwraca fragment zwartości r od pozycji poz i długości długość bajtów.
FUNCTION UTL_RAW.TRANSLATE
(r IN RAW,
zbior_we IN RAW,
zbior_wy IN RAW) RETURN RAW;
Zwraca zawartość zawartości r po translacji polegającej na zamianie bajtów zawartych w zbior_we na odpowiedniki wzbior_wy. Jeśli zbior_we jest większy niż zbior_wy, to bajty nie posiadające odpowiedników zostają usunięte z r.
FUNCTION UTL_RAW.TRANSLITERATE
(r IN RAW,
zbior_wy IN RAW DEFAULT NULL,
zbior_we IN RAW DEFAULT NULL,
dop IN RAW DEFAULT NULL)
RETURN RAW;
Zwraca zawartość r po translacji bajtów zawartych w zbior_we na zbior_wy. Jeśli zbior_we jest większy niż zbior_wy, to bajty nie posiadające odpowiedników zostają tłumaczone na dop.
FUNCTION UTL_RAW.XRANGE
(bajt_pocz IN RAW DEFAULT NULL, bajt_kon IN RAW DEFAULT NULL)
RETURN RAW;
Zwraca łańcuch znakowy RAW złożony ze wszystkich bajtów w porządku od bajt_pocz do bajt_kon łącznie z tymi wartościami. Jeśli bajt_pocz jest większy od bajt_kon, to wynik przechodzi od 0xFF do 0x00.
UTL_REF
Pakiet UTL_REF zawiera podprogramy pozwalające wybierać i modyfikować elementy typu obiektu w tabeli obiektu. Nazwa tablicy nie musi być znana (tylko dla systemu Oracle8.1).
PROCEDURE UTL_REF.DELETE_OBJECT
(odwołanie IN REF ANY);
Usuwa obiekt (a właściwie wiersz zawierający obiekt) identyfikowany przez odwołanie.
PROCEDURE UTL_REF.LOCK_OBJECT
(odwołanie IN REF ANY);
Blokuje obiekt kwalifikowany przez odwołanie.
PROCEDURE UTL_REF.LOCK_OBJECT
(odwołanie IN REF ANY, obiekt IN OUT ANY);
Blokuje obiekt kwalifikowany przez odwołanie i pobiera obiekt do zmiennej obiekt. Procedura jest podobna do polecenia SELECT FOR UPDATE.
PROCEDURE UTL_REF.SELECT_OBJECT
(odwołanie IN REF AMY, obiekt IN OUT ANY);
Pobiera obiekt kwalifikowany przez odwołanie do zmiennej obiekt.
PROCEDURE UTL_REF.UPDATE_OBJECT
(odwołanie IN REF ANY, obiekt IN OUT ANY);
Zamienia obiekt w bazie danych identyfikowany przez odwołanie na obiekt obiekt.
Wbudowane funkcje numeryczne
Wbudowane funkcje zaimplementowane przez firmę Oracle we wbudowanym pakiecie STANDARD są predefiniowanymi funkcjami, które pozwalają w wygodny sposób manipulować danymi. Istnieje sześć podstawowych typów funkcji wbudowanych, z których każda została omówiona w właściwej sekcji:
• Funkcje znakowe pozwalają na analizę i modyfikacje zawartości zmiennych tekstowych CHAR oraz VARCHAR2.
• Funkcje numeryczne oferują pełną gamę operacji na wartościach numerycznych, co obejmuje również operacje trygonometryczne, logarytmowanie i funkcje wykładnicze.
• Funkcje związane z datą to narzędzia pozwalające wykonywać operacje na wysokim poziomie związane z datami, łącznie z operacjami arytmetycznymi.
• Funkcje konwersji pozwalają na konwersje jednego typu danych na inne, często z możliwością formatowania danych wyjściowych.
• Funkcje dla obiektów typu LOB obsługujące operacje na obiektach LOB.
• Inne funkcje realizujące operacje, których nie można zaliczyć do żadnego z powyższych kryteriów.
Pakiet STANDARD zawiera definicje i funkcje języka PL/SQL. Definicje te obejmują wszystkie typy danych PL/SQL, nazwane wyjątki oraz funkcje i operatory (które są zdefiniowane jako funkcje). Należy zwrócić uwagę na to, że praktycznie wszystkie funkcje pakietu STANDARD mają odpowiedniki w funkcjach SQL.
Funkcje znakowe
Funkcje znakowe realizują rozkład nazw, konkatenację łańcuchów znakowych i realizują inne operacje znakowe.
FUNCTION ASCII
(znak IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN IN BINARY_INTEGER;
Zwraca wartość numeryczną kodu ASCII dla znak.
FUNCTION CHR
(n BINARY_INTEGER)
RETURN VARCHAR2;
Zwraca znak skojarzony z wartością numeryczną n, zgodnie z zestawem znaków bazy danych.
FUNCTION CONCAT
(tekst1 IN VARCHAR2 CHARACTER SET ANY_CS,
tekst2 IN VARCHAR2 CHARACTER SET
tekst1%CHARSET)
RETURN VARCHAR2 ;
Zwraca łańcuch znakowy złożony z połączenia tekst1 z tekst2.
FUNCTION INITCAP
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2;
Zwraca łańcuch znakowy tekst, dla którego pierwsza litera każdego wyrazu jest dużą literą, a wszystkie pozostałe małymi literami.
FUNCTION INSTR
(tekstl IN VARCHAR2 CHARACTER SET ANY_CS,
tekst2 IN VARCHAR2 CHARACTER SET tekst1%CHARSET,
poz BINARY_INTEGER := 1,
krotność IN POSITIVE := 1)
RETURN BINARY_INTEGER;
Zwraca pozycję znaku n-krotnego wystąpienia łańcucha tekst2 w łańcuchu tekst1. Wyszukiwanie rozpoczyna się od pozycji poz w tekst1 i jest prowadzone do końca łańcucha. Ujemna wartość poz wymusza wyszukiwanie od końca.
FUNCTION INSTRB
(tekst1 IN VARCHAR2 CHARACTER SET ANY_CS,
tekst2 IN VARCHAR2 CHARACTER SET tekst1%CHARSET,
poz BINARY_INTEGER := 1,
krotność IN POSITIVE := 1) RETURN BINARY_INTEGER;
Realizuje to samo, co funkcja INSTR, poza tym, że poz jest wyrażone w bajtach (dla wielobajtowych zestawów znaków).
FUNCTION LENGTH
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN NATURAL;
Zwraca długość łańcucha tekst.
FUNCTION LENGTHB
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN NUMBER;
Zwraca długość łańcucha tekst w bajtach.
FUNCTION LOWER
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2;
Zwraca łańcuch tekst ze wszystkimi znakami jako małe litery.
FUNCTION LPAD
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
długość BINARY INTEGER
[,dop IN VARCHAR2 CHARACTER SET tekst1%CHARSET])
RETURN VARCHAR2;
Zwraca tekst dopełniony z lewej strony do długości długość znakiem dopełniającym dop.
FUNCTION LTRIM
(tekst IN VARCHAR2 CHARACTER SET ANY_CS:= ' '
[,wzor IN VARCHAR2 CHARACTER SET tekst%CHARSET])
RETURN VARCHAR2;
Zwraca tekst pozbawiony wszystkich wiodących znaków zawartych w wzór.
FUNCTION REPLACE
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
podciągi IN VARCHAR2 CHARACTER SET tekst%CHARSET,
podciag2 IN VARCHAR2 CHARACTER SET tekst%CHARSET:= NULL)
RETURN VARCHAR2;
Zwraca tekst, w którym wszystkie wystąpienia podciąg1 zostały zastąpione przez podciąg2.
FUNCTION RPAD
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
długość BINARY_INTEGER
[,dop IN VARCHAR2 CHARACTER SET tekst%CHARSET])
RETURN VARCHAR2;
Zwraca tekst dopełniony z prawej strony do długości długość znakiem dopełniającym dop.
FUNCTION RTRIM
(tekst IN VARCHAR2 CHARACTER SET ANY CS:= ' '
[,wzor IN VARCHAR2 CHARACTER SET tekst%CHARSET])
RETURN VARCHAR2;
Zwraca tekst pozbawiony wszystkich znaków znajdujących się na końcu łańcucha zawartych w wzór.
FUNCTION SOUNDEX
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2;
Zwraca fonetyczne kodowanie dla łańcucha tekst.
FUNCTION SUBSTR
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
poz BINARY_INTEGER,
długość BINARY_INTEGER := NULL)
RETURN VARCHAR2;
Zwraca fragment łańcucha tekst od pozycji poz w łańcuchu o długości długość. Ujemna wartość dla poz lub długość powoduje odliczanie od końca.
FUNCTION SUBSTRB
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
poz BINARY_INTEGER,
długość BINARY_INTEGER : = NULL)
RETURN VARCHAR2;
Wykonuje tę samą operację, co funkcja SUBSTR, z tym, że wartosci poz i długość są wyrażone w bajtach (dla wielobajtowych zestawów znaków).
FUNCTION TRANSLATE
(tekst IN VARCHAR2 CHARACTER SET ANY_CS,
źródło IN VARCHAR2 CHARACTER SET tekst%CHARSET,
cel IN VARCHAR2 CHARACTER SET tekst%CHARSET)
RETURN VARCHAR2;
Zwraca łańcuch tekstowy tekst, w którym wystąpienia znaków zawartych w łańcuchu zródło zostały wymienione na znaki z łańcucha cel zgodnie z pozycją w łańcuchach.
FUNCTION UPPER
(tekst IN VARCHAR2 CHARACTER SET ANY_CS)
RETURN VARCHAR2;
Zwraca łańcuch znakowy tekst, w którym wszystkie znaki są dużymi literami.
Funkcje numeryczne
Funkcje numeryczne do obsługi danych numerycznych.
FUNCTION ABS (n IN MUMBER) RETURN NUMBER;
Zwraca wartość bezwzględną dla n.
FUNCTION ACOS (n IN NUMBER) RETURN NUMBER;
Zwraca wartość arcuscosinus dla n, gdzie -1 < n < 1.
FUNCTION ASIN (n IN NUMBER} RETURN NUMBER;
Zwraca wartość arcussinus dla n, gdzie -1 < n < 1.
FUNCTION ATAN (n IN NUMBER) RETURN NUMBER;
Zwraca wartość arcustangens dla n.
FUNCTION ATAN2
(x IN NUMBER, y IN NUMBER) RETURN NUMBER;
Zwraca wartość arcustangens dla.x oraz y.
FUNCTION CEIL (n IN NUMBER) RETURN NUMBER;
Zwraca najmniejszą wartość całkowitą większą lub równą n.
FUNCTION COS (n IN NUMBER) RETURN NUMBER;
Zwraca wartość funkcji cosinus dla n.
FUNCTION COSH (n IN NUMBER) RETURN NUMBER;
Zwraca wartość cosinusa hiperbolicznego dla n.
FUNCTION EXP (n IN NUMBER) RETURN NUMBER;
Zwraca wartość e podniesionej do potęgi n, gdzie e jest podstawą logarytmu naturalnego.
FUNCTION FLOOR (n IN NUMBER) RETURN NUMBER;
Zwraca największą wartość całkowitą mniejszą lub równą n.
FUNCTION LN (n IN NUMBER) RETURN NUMBER;
Zwraca wartość logarytmu naturalnego dla n.
FUNCTION LOG
(n1 IN NUMBER, n2 IN NUMBER) RETURN NUMBER;
Zwraca wartość logarytmu z n2 o podstawie n1, gdzie n1 > 1 i n2 > 0.
FUNCTION MOD
(n1 IN NUMBER, n2 IN NUMBER) RETURN NUMBER;
Zwraca wartość reszty z dzielenia n1 przez n2.
FUNCTION POWER
(n IN NUMBER, e IN NUMBER) RETURN NUMBER;
Zwraca wartość n podniesioną do potęgi e.
FUNCTION ROUND
(n1 IN NUMBER, n2 BINARY_INTEGER : = 0} RETURN NUMBER;
Zwraca wartość n1 po zaokrągleniu do n2 miejsc po przecinku.
FUNCTION SIGN (n IN NUMBER) RETURN SIGNTYPE;
Zwraca -1, 0 lub 1 w zależności od znaku n.
FUNCTION SIN (n IN NUMBER) RETURN NUMBER;
Zwraca wartość funkcji sinus dla n.
FUNCTION SINH (n IN NUMBER) RETURN NUMBER;
Zwraca wartość funkcji sinus hiperboliczny dla n.
FUNCTION SQRT (n IN NUMBER) RETURN NUMBER;
Zwraca wartość pierwiastka kwadratowego z n.
FUNCTION TAN (n IN NUMBER) RETURN NUMBER;
Zwraca wartość funkcji tangens dla n.
FUNCTION TANH (n IN NUMBER) RETURN NUMBER;
Zwraca wartość funkcji tangens hiperboliczny dla n.
FUNCTION TRUNC
(n IN NUMBER, m BINARY_INTEGER := 0) RETURN NUMBER;
Obcina wartość n do m miejsc po przecinku.
Funkcje związane z datą
Funkcje te pozwalająna manipulację wartościami typu data.
FUNCTION ADD_MONTHS
(data IN DATE | NUMBER, m IN NUMBER | DATE) RETURN DATE;
Zwraca datę po dodaniu m miesięcy do daty data.
FUNCTION LAST_DAY (data IN DATE) RETURN DATE;
Zwraca ostatni dzień miesiąca zawartego w data.
FUNCTION MONTHS_BETWEEN
(datal IN DATE, data2 IN DATE) RETURN NUMBER;
Zwraca liczbę miesięcy między datami data1 i data2.
FUNCTION NEW_TIME
(data IN DATE,
strefa1 IN VARCHAR2,
strefa2 IN VARCHAR2) RETURN DATE;
Zwraca datę uzyskaną w wyniku konwersji data ze strefy czasowej strefa1 na strefę strefa2.
FUNCTION NEXT_DAY
(data IN DATE, dzień IN VARCHAR2) RETURN DATE;
Zwraca następne wystąpienie dnia tygodnia dzień (poniedziałek, wtorek itd.) po dacie data.
FUNCTION ROUND
(data IN DATE [,maska IN VARCHAR2]) RETURN DATE;
Zwraca datę data zaokrągloną zgodnie z maską formatu maska (lub zgodnie z domyślnym formatem DD).
FUNCTION SYSDATE RETURN DATE;
Zwraca bieżącą datę systemową z bazy danych.
FUNCTION TRUNC
(data IN DATE [,maska IN VARCHAR2]) RETURN DATE;
Zwraca datę data obciętą przy użyciu maski formatu maska (lub zgodnie z domyślnym formatem DD).
Funkcje konwersji
Funkcje konwersji pozwalają na konwersję danych na właściwy typ danych.
FUNCTION CHARTOROWID (str IN VARCHAR2) RETURN ROWID;
Zwraca wartość str po konwersji z typu VARCHAR2 na typ ROWID. Patrz także DBMS_ROWID.
FUNCTION CONVERT
(tekst IN VARCHAR2,
zestaw_wy IN VARCHAR2
[,zestaw_we IN VARCHAR2])
RETURN VARCHAR2;
Zwraca tekst po konwersji z zestawu znaków zestaw_we na zestaw znaków zestaw_wy. Domyślnym zestawem dla zestaw_we jest domyślny zestaw znakowy bazy danych.
FUNCTION HEXTORAW (c IN VARCHAR2) RETURN RAW;
Zwraca wartość c typu VARCHAR kodowaną heksadecymalnie jako łańcuch znakowy RAW.
FUNCTION RAWTOHEX (r IN RAW) RETURN VARCHAR2;
Zwraca łańcuch znakowy r typu RAW jako typ VARCHAR kodowany heksadecymalnie.
FUNCTION ROWIDTOCHAR (str IN ROWID) RETURN VARCHAR2;
Zwraca dane typu ROWID w str po konwersji na typ VARCHAR.
FUNCTION TO_CHAR
(param IN DATE | NUMBER
[,maska IN VARCHAR2])
[,nls_pararn IN VARCHAR2])
RETURN VARCHAR2;
Zwraca wartość param po konwersji z typu NUMBER lub DATE na VARCHAR przy użyciu maski formatu maska (jeśli jest określona). Opcjonalny parametr nls_param może określać parametry języka NLS.
FUNCTION TO_DATE
(param IM VARCHAR2 | NUMBER
[,maska IN VARCHAR2]
[,nls_param IN VARCHAR2])
RETURN DATE;
Zwraca wartość param po konwersji z typu NUMBER lub VARCHAR na DATE przy użyciu maski formatu maska (jeśli jest określona). Opcjonalny parametr nls_param może określać parametry języka NLS.
FUNCTION TO_MUMBER
(param IN VARCHAR2 | NUMBER
[,maska IN VARCHAR2]
[,nls_param IN VARCHAR2])
RETURN NUMBER;
Zwraca wartość param po konwersji z typu VARCHAR na NUMBER przy użyciu maski formatu maska jeśli jest określona). Opcjonalny parametr nls_param może określać parametry języka NLS.
Funkcje dla obiektów LOB
Funkcje LOB pozwalają na inicjalizacje wartości obiektów LOB.
FUNCTION BFILENAME
(katalog IN VARCHAR2, nazwa_pliku IN VARCHAR2; RETURN BFILE;
Zwraca lokalizator (uchwyt) BFILE do pliku nazwa_pliku w katalogu katalog. Patrz także DBMS_LOB.
FUNCTION EMPTY_BLOB RETURN BLOB;
Zwraca pusty lokalizator typu BLOB.
FUNCTION EMPTY_CLOB RETURN CLOB;
Zwraca pusty lokalizator typu CLOB.
Pozostałe funkcje
Pozostałe funkcje zwracają różnorakie użyteczne informacje.
FUNCTION BITAND
(nl BINARY_INTEGER, n2 BINARY_INTEGER)
RETURN BINARY_INTEGER;
Zwraca wartość bitowej operacji I dla n1 i n2.
FUNCTION DUMP
(wartość IN NUMBER | DATE | VARCHAR2, format BINARY_INTEGER := NULL, poz BINARY_INTEGER := NULL, długość BINARY_INTEGER : = NULL)
RETURN VARCHAR2;
Zwraca wewnętrzną reprezentację części wartość, począwszy od pozycji poz i długości długość przy użyciu formatu format (8 = ósemkowo; 10 = dziesiętnie; 16 = szesnastkowo; 17 = znakowo).
FUNCTION GREATEST
(wyr IN NUMBER | VARCHAR | DATE) RETURN NUMBER | VARCHAR | DATE;
Zwraca największą wartość z wyrażeń (dwóch lub więcej) zawartych w wyr. Wyrażenia wyr muszą być tego samego typu.
FUNCTION LEAST
(wyr IN MUMBER | VARCHAR | DATE) RETURN NUMBER | VARCHAR | DATE;
Zwraca najmniejszą wartość z wyrażeń (dwóch lub więcej) zawartych w wyr. Wyrażenia wyr muszą być tego samego typu.
FUNCTION NVL
(s1 | n1 | d1 | b1 IN VARCHAR2 | NUMBER | DATE | BOOLEAN,
s2 | n2 | d2 | b2 IN VARCHAR2 CHARACTER SET s1%CHARSET)
RETURN VARCHAR2 | NUMBER | DATE | BOOLEAN;
Funkcja wartości NULL; zwraca s2 | n2 | d2 | b2, gdy s1 | nl | d1 | bl ma wartość NULL, a w przeciwnym przypadku sl | nl | dl | bl.
FUNCTION SQLCODE RETURN NUMBER;
Zwraca kod numeryczny związany z bieżącym statusem wykonania.
FUNCTION SQLERRM [(kod IN NUMBER)] RETURN VARCHAR2;
Zwraca komunikat błędu związany z kodem (lub domyślnie bieżącą wartość SQLCODE).
FUNCTION UID RETURN NUMBER;
Zwraca wartość numeryczną id użytkownika dla bieżącego użytkownika.
FUNCTION USER RETURN VARCHAR2;
Zwraca nazwę użytkownika dla bieżącego użytkownika.
FUNCTION USERENV (envstr IN VARCHAR2)
RETURN VARCHAR2;
Zwraca informacje o środowisku dla sesji użytkownika dla envstr, gdzie envstr przyjmuje wartości:
ENTRYID
Zwraca identyfikator śledzenia.
INSTANCE
Zwraca identyfikator instancji dla bazy danych OPS.
LANGUAGE
Zwraca ustawienia NLS (język, terytorium, zestaw znaków) dla sesji. TERMINAL
Zwraca identyfikator terminala systemu operacyjnego.
FUNCTION VSIZE
(wart IN NUMBER | DATE | VARCHAR2)
RETURN NUMBER;
Zwraca ilość bajtów wymaganych do wewnętrznego przechowania wartości wart.
FUNCTION XOR
(b1 IN BOOLEAN, b2 IN BOOLEAN)
RETURN BOOLEAN;
Zwraca wartość TRUE, gdy b1 ma wartość TRUE, a b2 ma wartość FALSE lub bl ma wartość FALSE, a b2 ma wartość TRUE. Patrz także UTL_RAW.
Dytektywy pragma
RESTRICTREFERENCES
Dyrektywy pragma kompilatora PL/SQL przekazują informacje do kompilatora. Dyrektywy są przetwarzane w czasie kompilacji, lecz nie są wykonywane. Jeśli wywołanie obiektu z wbudowanego pakietu zawiera się w poleceniu SQL, to trzeba również zawrzeć w kodzie dyrektywę pragma RESTRICT REFERENCES. Pragma zawiera informacje dla kompilatora o poziomie zaufania purity level (freedom from side effects) programu pakietu. Dostępne poziomy zaufania:
• WNDS - nie zmienia stanu bazy danych (nie modyfikuje tabel bazy danych).
• RNDS - nie odczytuje stanu bazy danych (nie wykonuje zapytań do tabel).
• WNPS - nie zmienia stanu pakietu (nie modyfikuje wartości zmiennych pakietu).
• RNPS - nie odczytuje stanu pakietu (nie odwołuje się do zmiennych pakietu).
Programy DBMS_LOB |
WNDS |
RNDS |
WNPS |
RNPS |
COMPARE |
v |
v |
v |
v |
FILEEXISTS |
v |
v |
v |
v |
FILEISOPEN |
v |
v |
v |
v |
GETLENGTH |
v |
v |
v |
v |
INSTR |
v |
v |
v |
v |
SUBSTR |
v |
v |
v |
v |
Programy DBMS_OUTPUT |
WNDS |
RNDS |
WNPS |
RNPS |
DISABLE |
v |
v |
|
|
ENABLE |
v |
v |
|
|
GET_LINE |
v |
v |
|
|
GET_LINES |
v |
v |
|
|
NEW_LINE |
v |
v |
|
|
PUT |
v |
v |
|
|
PUT_LINE |
v |
v |
|
|
Programy DBMS_PIPE |
WNDS |
RNDS |
WNPS |
RNPS |
CREATE_PIPE |
V |
V |
|
|
NEXT_ITEM_TYPE |
V |
V |
|
|
PACK_MESSAGE |
V |
V |
|
|
PACK_MESSAGE_RAW |
V |
V |
|
|
PACK_MESSAGE_ROWID |
V |
V |
|
|
PURGE |
V |
V |
|
|
RECEIVE_MESSAGE |
V |
V |
|
|
REMOVE PIPE |
V |
V |
|
|
RESET_BUFFER |
V |
V |
|
|
SEND_MESSAGE |
V |
V |
|
|
UNIQUE_SESSION_NAME |
V |
V |
V |
|
UNPACK_MESSAGE |
V |
V |
|
|
UNPACK_MESSAGE_RAW |
V |
V |
|
|
UNPACK_MESSAGE_ROWID |
V |
V |
|
|
Programy DBMS_ROWID |
WNDS |
RNDS |
WNPS |
RNPS |
ROWID_BLOCK_NUMBER |
V |
V |
V |
V |
ROWID_CREATE |
V |
V |
V |
V |
ROWID_INFO |
V |
V |
V |
V |
ROWID_OBJECT |
V |
V |
V |
V |
ROWID_RELATIVE_FNO |
V |
V |
V |
V |
ROWID_ROW_NUMBER |
V |
V |
V |
V |
ROWID_TO_ABSOLUTE_FNO |
V |
|
V |
V |
ROWID_TO_EXTENDED |
V |
|
V |
V |
ROWID_TO_ RESTRICTED |
V |
V |
V |
V |
ROWID_TYPE |
V |
V |
V |
V |
ROWID_VERIFY |
V |
|
V |
V |
Programy DBMS_SESSION |
WNDS |
RNDS |
WNPS |
RNPS |
UNIQUE_SESSION_ID |
V |
V |
V |
|
Programy DBMS_SQL |
WNDS |
RNDS |
WNPS |
RNPS |
BIND_ARRAY |
V |
|
|
|
BIND_VARIABLE |
V |
|
|
|
BIND_VARIABLE_CHAR |
V |
|
|
|
BIND_VARIABLE_RAW |
V |
|
|
|
BIND_VARIABLE_ROWID |
V |
|
|
|
CLOSE_CURSOR |
V |
V |
|
|
COLUMN_VALUE |
V |
V |
|
|
COLUMN_VALUE_CHAR |
V |
V |
|
|
COLUMN_VALUE_LONG |
V |
V |
|
|
COLUMN_VALUE_RAW |
V |
V |
|
|
COLUMN_VALUE_ROWID |
V |
V |
|
|
DEFINE_ARRAY |
V |
V |
|
|
DEFINE_COLUMN |
V |
V |
|
|
DEFINE_COLUMN_CHAR |
V |
V |
|
|
DEFINE_COLUMN_LONG |
V |
V |
|
|
DEFINE_COLUMN_RAW |
V |
V |
|
|
DEFINE_COLUMN_ROWID |
V |
V |
|
|
DESCRIBE_COLUMNS |
V |
|
|
|
EXECUTE_AND_FETCH |
V |
|
|
|
FETCH_ROWS |
V |
|
|
|
IS_OPEN |
V |
V |
|
|
Programy DBMS_SQL |
WNDS |
RNDS |
WNPS |
RNPS |
LAST_ERROR_POSITON |
V |
V |
|
|
LAST_ROW_COUNT |
V |
V |
|
|
LAST_ROW_ID |
V |
V |
|
|
LAST_SQL_FUNCTION_CODE |
V |
V |
|
|
OPEN_CURSOR |
V |
V |
|
|
VARIABLE_VALUE |
V |
V |
|
|
VARIABLE_VALUE_CHAR |
V |
V |
|
|
VARIABLE_VALUE_RAW |
V |
V |
|
|
VARIABLE_VALUE_ROWID |
V |
V |
|
|
Programy DBMS_STANDARD |
WNDS |
RNDS |
WNPS |
RNPS |
DELETING |
V |
|
V |
V |
INSERTING |
V |
|
V |
V |
RAISE_APPLICATION_ERROR |
V |
V |
V |
V |
UPDATING |
V |
|
V |
V |
Programy DBMS_UTILITY |
WNDS |
RNDS |
WNPS |
RNPS |
DATA_BLOCK_ADDRESS_BLOCK |
V |
V |
V |
V |
DATA_BLOCK_ADDRESS_FILE |
V |
V |
V |
V |
GET_HASH_VALUE |
V |
V |
V |
V |
MAKE_DATA_BLOCK_ADDRESS |
V |
V |
V |
V |
PORT_STRING |
V |
V |
V |
V |
Programy UTL RAW |
WNDS |
RNDS |
WNPS |
RNPS |
BIT_AND |
V |
V |
V |
V |
BIT_COMPLEMENT |
V |
V |
V |
V |
BIT_OR |
V |
V |
V |
V |
BIT_XOR |
V |
V |
V |
V |
CAST_TO_RAW |
V |
V |
V |
V |
CAST TO VARCHAR2 |
V |
V |
V |
V |
Programy UTL_RAW |
WNDS |
RNDS |
WNPS |
RNPS |
COMPARE |
V |
V |
V |
V |
CONCAT |
V |
V |
V |
V |
CONVERT |
V |
V |
V |
V |
COPIES |
V |
V |
V |
V |
LENGTH |
V |
V |
V |
V |
OVERLAY |
V |
V |
V |
V |
REVERSE |
V |
V |
V |
V |
SUBSTR |
V |
V |
V |
V |
TRANSLATE |
V |
V |
V |
V |
TRANSLITERATE |
V |
V |
V |
V |
XRANGE |
V |
V |
V |
V |
Elementy nieprogramistyczne
Poza definicjami programów (omówionych wcześniej w sekcji Wbudowane pakiety), pakiety mogą zawierać elementy nieprogramistyczne zdefiniowane dla danego pakietu. Elementy te mogą obejmować: stałe, wyjątki, typy rekordowe oraz tabele indeksowe.
Ta sekcja omawia elementy nieprogramistyczne zdefiniowane dla każdego wbudowanego pakietu.
DBMS ALERT
maxwait CONSTANT INTEGER := 86400000;
DBMS_APPLICATION_INFO
set_session_longops_nohint
CONSTANT BINARY_INTEGER := -1;
before CONSTANT BINARY_INTEGER
browse CONSTANT BINARY_INTEGER
expired CONSTANT BINARY_INTEGER
first_message CONSTANT BINARY_INTEGER
forever CONSTANT BINARY_INTEGER
immediate CONSTANT BINARY_INTEGER
iocked CONSTANT BINARY_INTEGER
never CONSTANT BINARY_INTEGER
next_message CONSTANT BINARY_INTEGER next_transaction CONSTANT BINARY_INTEGER
no_delay CONSTANT BINARY_INTEGER
no_wait CONSTANT BINARY_INTEGER
on_commit CONSTANT BINARY_INTEGER
processed CONSTANT BINARY_INTEGER
ready CONSTANT BINARY_INTEGER
remove CONSTANT BINARY_INTEGER
top CONSTANT BINARY_INTEGER
waiting CONSTANT BINARY_INTEGER
TYPE aq$_recipient_list_t IS TABLE OF sys.aq$_agent
INDEX BY BINARY_INTEGER;
TYPE message_properties_t IS RECORD
(priority BINARY_INTEGER DEFAULT 1,
delay BINARY_INTEGER DEFAULT DBMS_AQ.no_delay, expiration BINARY_INTEGER DEFAULT DBMS_AQ.never,
correlation VARCHAR2(128) DEFAULT NULL,
attempts BINARY_INTEGER,
recipient_list DBMS_AQ.aq$_ recipient_list_t,
exception_queue VARCHAR2(51) DEFAULT NULL, enqueue_time DATE,
state BINARY_INTEGER);
TYPE enqueue_options_t IS RECORD
(visibility BINARY_INTEGER DEFAULT DBMS_AQ.on_commit,
relative_msgid RAW(16) DEFAULT NULL,
sequence_deviation BINARY_INTEGER DEFAULT NULL);
TYPE dequeue_options_t IS RECORD
(consumer_name VARCHAR2(30) DEFAULT NULL,
dequeue_mode BINARY_INTEGER DEFAULT DBMS_AQ.remove,
navigation BINARY_INTEGER DEFAULT DBMS_AQ.next_message,
visibility BINARY_INTEGER DEFAULT DBMS_AQ.on_commit,
wait BINARY_INTEGER DEFAULT DBMS_AQ.forever,
msgid RAW(16) DEFAULT NULL,
correlation VARCHAR2(128) DEFAULT NULL) ;
DBMS_AQADM
exception_queue CONSTANT BINARY_INTEGER := 1;
infinite CONSTAMT BINARY_INTEGER : = -1
none CONSTANT BINARY_INTEGER := 0;
normal_queue CONSTANT BINARY_INTEGER := 0;
transactional COMSTANT BINARY_INTEGER := 1;
TYPE aq$_subscriber_list_t IS TABLE OF sys.aq$_agent
INDEX BY BINARY_INTEGER;
DBMS_DESCRIBE
TYPE varchar2_table IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
TYPE number_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
invalid_argval EXCEPTICN;
PRAGMA EXCEPTION_INIT(invalid_argval, -21560);
access_error EXCEPTION;
PRAGMA EXCEPTION_INIT(access_error, -22925);
noexist_directory EXCEPTION;
PRAGMA EXCEPTION_INIT(noexist_directory,-22285) ;
nopriv_directory EXCEPTION;
PRAGMA EXCEPTION_INIT(nopriv_directory,-22286) ;
invalid_directory EXCEPTION;
PRAGMA EXCEPTION_INIT(invalid_directory,-22287);
operation_failed EXCEPTION;
PRAGMA EXCEPTION_INIT(operation_failed,-22288) ;
unopened_file EXCEPTION;
PRAGMA EXCEPTION_INIT(unopened_file, -22289);
open_toomany EXCEPTION;
PRAGMA EXCEPTION_INIT(open_toomany, -22290);
file_readonly CONSTANT BINARY_INTEGER := 0;
lobmaxsize CONSTANT INTEGER := 4294967295;
invalid_argval_num NUMBER := 21560;
access_error_num NUMBER := 22925;
noexist_directory_num NUMBER := 22285;
nopriv_directory_num NUMBER := 22286;
invalid_directory_num NUMBER := 22287;
operation_failed_num NUMBER := 22288;
unopened file_num NUMBER := 22289;
open_toomany_num NUMBER := 22290;
nl_mode CONSTANT INTEGER = 1;
ss_mode CONSTANT INTEGER = 2;
sx_mode CONSTANT INTEGER = 3;
s_mode CONSTANT INTEGER = 4;
ssx_mode CONSTANT INTEGER = 5;
x_mode CONSTANT INTEGER = 6;
maxwait CONSTANT INTEGER = 32767;
TYPE chararr IS TABLE OF VARCHAR2(255)
INDEX BY BINARY_INTEGER;
maxwait CONSTANT INTEGER := 86400000;
rowid_invalid EXCEPTION;
PRAGMA EXCEPTION_INIT(rowid_invalid, -1410);
rowid_bad_block EXCEPTION;
PRAGMA EXCEPTION_INIT(rowid_bad_block, -28516);
rowid_convert_external CONSTANT INTEGER := 1;
rowid_convert_internal CONSTANT INTEGER := 0;
rowid_is_invalid CONSTANT INTEGER := 1;
rowid_is_valid CONSTANT INTEGER := 0;
rowid_object_undefined CONSTANT INTEGER := 0;
rowid_type_extended CONSTANT INTEGER := 1;
rowid_type_restricted CONSTANT INTEGER := 0;
inconsistent_type EXCEPTION;
PRAGMA EXCEPTION_INIT(inconsistent_type,-6562) ;
v6 CONSTANT INTEGER := 0;
native CONSTANT INTEGER := 1;
v7 CONSTANT INTEGER := 2;
TYPE varchar2s IS TABLE OF VARCHAR2(256)
INDEX BY BINARY_INTEGER;
TYPE desc_rec IS RECORD
(col_type BINARY_INTEGER := 0,
col_max_len BINARY_INTEGER := 0,
col_name varchar2(32) := ‘ ‘,
col_name_len BINARY_INTEGER := 0,
col_schema_name VARCHAR2(32) := '',
ol_schema_name_len BINARY_INTEGER := 0,
col_precision BINARY_INTEGER := 0,
col_scale BINARY_INTEGER := 0,
col_charsetid BINARY_INTEGER := 0,
col_charsetform BINARY_INTEGER : = 0,
col_null_ok BOOLEAN := TRUE);
TYPE desc_tab IS TABLE OF desc_rec
INDEX BY BINARY_INTEGER;
TYPE number_table IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
TYPE varchar2_table IS TABLE OF VARCHAR2(2000)
INDEX BY BINARY_INTEGER;
TYPE date_table IS TABLE OF DATE
INDEX BY BINARY_INTEGER;
TYPE blob_table IS TABLE OF BLOB
INDEX BY BINARY_INTEGER;
TYPE clob_table IS TABLE OF CLOB
INDEX BY BINARY_INTEGER;
TYPE bfile_table IS TABLE OF BFILE
INDEX BY BINARY INTEGER;
DBMS_ TRANSACTION
discrete_transaction_failed EXCEPTION ;
PRAGMA EXCEPTION_INIT (discrete_ transaction_failed,
-8175);
consistent_read_failure EXCEPTION;
PRAGMA EXCEPTION_INIT (consistent_read_failure,-8176);
DBMS_ UTILITY
TYPE uncl_array IS TABLE OF VARCHAR2(227)
INDEX BY BINARY_INTEGER;
TYPE name_array IS TABLE OF VARCHAR2(30)
INDEX BY BINARY_INTEGER;
TYPE dblink_array IS TABLE OF VARCHAR2(128)
INDEX BY BINARY_INTEGER;
TYPE index_table_type IS TABLE OF BINARY_INTEGER
INDEX BY BINARY_INTEGER;
TYPE number_array IS TABLE OF NUMBER
INDEX BY BINARY INTEGER;
internal_error EXCEPTION;
invalid_filehandle EXCEPTION;
invalid_mode EXCEPTION;
invalid_operation EXCEPTION;
invalid_path EXCEPTION;
read_error EXCEPTION;
write_error EXCEPTION;
TYPE file_type IS RECORD (id BINARY_INTEGER),
STANDARD
Poniżej zamieszczono nieprogramistyczne elementy pakietu STANDARD.
dup_val_on_index EXCEPTION;
PRAGMA EXCEPTION_INIT(dup_val_on_index,’-0001’) ;
timeout_on_resource EXCEPTION;
PRAGMA EXCEPTION_INIT(timeout_on_resource,’-0051’ ) ;
invalid_cursor EXCEPTION;
PRAGMA EXCEPTION_INIT(invalid cursor,'-1001');
not_logged_on EXCEPTION;
PRAGMA EXCEPTION_INIT(not_logged_on, ' -1012' ) ;
login_denied EXCEPTION;
PRAGMA EXCEPTION_INIT(login_denied, '-1017');
too_many_rows EXCEPTION;
PRAGMA EXCEPTION_INIT(too_many_rows, '-1422');
zero_divide EXCEPTION;
PRAGMA EXCEPTION_INIT(zero_divide, '-1476');
invalid_number EXCEPTION;
PRAGMA EXCEPTION_INIT(invalid_number, ' -1722 ' ) ;
storage_error EXCEPTION;
PRAGMA EXCEPTION_INIT(storage_error, '-6500');
program_error EXCEPTION;
PRAGMA EXCEPTION_INIT(program_error, '-6501');
value_error EXCEPTION;
PRAGMA EXCEPTION_INIT(value_error, '-6502');
rowtype_mismatch EXCEPTION;
PRAGMA EXCEPTION_INIT(rowtype_mismatch,’-6504’ ) ;
cursor_already_open EXCEPTION;
PRAGMA EXCEPTION_INIT(cursor_already_open,’-6511’);
access_into_null EXCEPTION;
PRAGMA EXCEPTION_INIT (access_into_null,’-6530’);
collection_is_null EXCEPTION;
PRAGMA EXCEPTION_INIT(collection_is_null ,’-6531’);
subscript_outside_limit EXCEPTION;
PRAGMA EXCEPTION_INIT(subscript_outside_limit,'-6532');
subscript_beyond_count EXCEPTION;
PRAGMA EXCEPTION_INIT(subscript_beyond_count'-6533');
no_data_found EXCEPTION;
PRAGMA EXCEPTION INIT(no data found, 100);
Typy danych numerycznych
TYPE NUMBER IS NUMBER_BASE;
SUBTYPE BINARY_INTEGER IS INTEGER RANGE ’-2147483647’ ..2147483647;
SUBTYPE CURSOR_HANDLE IS BINARY_INTEGER RANGE 0..255;
SUBTYPE DEC IS DECIMAL;
SUBTYPE DECIMAL IS NUMBER(38,0);
SUBTYPE "DOUBLE PRECISION" IS FLOAT;
SUBTYPE FLOAT IS NUMBER; -- NUMBER(126)
SUBTYPE INT IS INTEGER;
SUBTYPE INTEGER IS NUMBER(38,0);
SUBTYPE NATURAL IS BINARY_INTEGER RANGE 0..2147483647;
SUBTYPE NATURALN IS NATURAL NOT NULL;
SUBTYPE NUMERIC IS DECIMAL;
SUBTYPE PLS_INTEGER IS BINARY_INTEGER;
SUBTYPE POSITIVE IS BINARY_INTEGER RANGE 1..2147483647;
SUBTYPE POSITIVEN IS POSITIVE NOT NULL;
SUBTYPE REAL IS FLOAT; -- FLOAT(63)
SUBTYPE SIGNTYPE IS BINARY_INTEGER RANGE ’-1’..1; -- dla funkcji SIGN
SUBTYPE SMALLINT IS NUMBER(38,0);
Typy danych znakowych
TYPE VARCHAR2 IS NEW CHAR_BASE;
SUBTYPE CHAR IS VARCHAR2;
SUBTYPE CHARACTER IS CHAR;
SUBTYPE "CHAR VARYING" IS VARCHAR;
SUBTYPE "CHARACTER VARYING" IS VARCHAR;
SUBTYPE LONG IS VARCHAR2(32760);
SUBTYPE "LONG RAW" IS RAW(32760);
SUBTYPE RAW IS VARCHAR2;
SUBTYPE ROWID IS VARCHAR2(256);
SUBTYPE STRING IS VARCHAR2;
SUBTYPE VARCHAR IS VARCHAR2;
SUBTYPE "NCHAR" IS CHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NCHAR VARYING" IS VARCHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NCLOB" IS CLOB CHARACTER SET NCHAR_CS; SUBTYPE "NVARCHAR2" IS VARCHAR2 CHARACTER SET NCHAR_CS;
SUBTYPE "NATIONAL CHAR VARYING" IS VARCHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NATIONAL CHAR" IS CHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NATIONAL CHARACTER LARGE OBJECT" IS CLOB CHARACTER SET NCHAR_CS;
SUBTYPE "NATIONAL CHARACTER VARYING" IS VARCHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NATIONAL CHARACTER" IS CHAR CHARACTER SET NCHAR_CS;
SUBTYPE "NCHAR LARGE OBJECT" IS CLOB CHARACTER NCHAR_CS;
Typy danych LOB
TYPE BFILE IS BFILE_BASE;
TYPE BLOB IS BLOB_BASE;
TYPE CLOB IS CLOB_BASE;
SUBTYPE "BINARY LARGE OBJECT" IS BLOB;
SUBTYPE "CHAR LARGE OBJECT" IS CLOB;
SUBTYPE "CHARACTER LARGE OBJECT" IS CLOB;
Inne typy danych
TYPE BOOLEAN IS (FALSE, TRUE);
TYPE DATE IS DATE_BASE;
TYPE MLSLABEL IS NEW CHAR_BASE;