Oracle PLSQL Pakiety i Funkcje Leksykon Kieszonkowy

background image



Oracle PL/SQL Pakiety i funkcje

Leksykon kieszonkowy

background image

Niniejszy leksykon, to podręczne źródło informacji na temat większości
wbudowanych pakietów i funkcji stworzonych przez firmę Oracle Corporation.
Są w nim zawarte zwięzłe opisy składni następujących elementów:
• wbudowanych pakietów;
• wbudowanych funkcji;
• dyrektyw pragma RESTRICT REFERENCES dla pakietów;
• pozostałych elementów (np. stałe, wyjątki itp.) zdefiniowanych na potrzeby
pakietów.
Chociaż leksykon ten nie zawiera opisu każdego z pakietów czy funkcji, to
znajdują się tu wszystkie dodatki, jakie są najczęściej wykorzystywane przez
programistów PL/SQL.

UWAGA

Gdy pakiet, program lub funkcja jest dostępna jedynie w określonej wersji
systemu Oracle (np. Oracle8), jest to zaznaczone w tekście.

Celem leksykonu jest ułatwienie wyszukania składni definicji określonego
wbudowanego dodatku. Nie jest to podręcznik użytkownika. Aby korzystać z
książki, potrzebna jest podstawowa znajomość PL/SQL i jego dodatków. Więcej
informacji na ten temat znajduje się w następujących publikacjach:
Oracle PL/SQL Programming,

autorstwa Stevena Feuersteina i Billa Pribyla

(O'Reilly & Associates. Second Edition, 1997)
Oracle Built-in Packages,

autorstwa Stevena Feuersteina, Charlesa Dye'a i Johna

Beresniewicza (O'Reilly & Associates, 1998)

Konwencje

DUśE LITERY stosowane dla słów kluczowych PL/SQL.
małe litery

stosowane dla elementów zdefiniowanych przez

użytkownika, takich jak parametry.
Kursywa

stosowana dla parametrów w obrębie tekstu.

[ ]

w opisie składni wskazuje na element opcjonalny.


Wbudowane pakiety

Pakiety PL/SQL pozwalają na tworzenie kolekcji powiązanych ze sobą
elementów programu i sprawowanie nad nimi kontroli. System Oracle zawiera
bardzo duży zestaw wbudowanych pakietów, które na różne sposoby rozszerzają
funkcjonalność PL/SQL. Wiele wbudowanych dodatków pozwala na dostęp do
mechanizmów, które nie byłyby dostępne w inny sposób. Z pewnością pakiety te
stanowią nieocenioną pomoc przy tworzeniu aplikacji, zarządzaniu zasobami
serwera i przy wykonywaniu wielu innych operacji.
Wbudowane pakiety są omówione w porządku alfabetycznym. Dla każdego
pakietu i programu zdefiniowanego w pakiecie zamieszczono nagłówek
(sekwencję wywołania) oraz dołączono krótki opis działania programu.
Dwa pakiety zasługują na szczególne omówienie. Pakiet STANDARD zawiera

background image

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.

background image

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

background image

(nazwa_kolejki IN VARCHAR2, opcje_wstawiania IN
DBMS_AQ.ENQUEUE_OPTIONS_T,

właściwości_komunikatu IN DBMS_AQ.MESSAGE_PROPERTIES_T,
zawartość IN typ_zawartości, id_komunikatu OUT RAW);

Wstawia zawartość komunikatu do kolejki nazwa_kolejki zgodnie z opcjami
określonymi w rekordzie opcje_wstawiania. Zawartość może być typu RAW
bądź też nazwą obiektu o określonym typie. Zwraca wskaźnik do wiadomości w
id_komunikatu.

PROCEDURE DBMS_AQ.DEQUEUE
(nazw_kolejki IN VARCHAR2, opcje_usuwania IN
DBMS_AQ.DEQUEUE_OPTIONS_T, właściwości_komunikatu OUT
DBMS_AQ.MESSAGE_PROPERTIES_T, zawartość OUT
typ_zawartości, id_wiadomości OUT RAW);
Pobiera zawartość komunikatu (może być RAW lub obiekt danego typu) wraz z
właściwościami komunikatu określonymi przez opcje_usuwania. Również
zwraca identyfikator komunikatu.

DBMS_AQADM


Pakiet DBMS_AQADM zawiera zbiór programów pozwalających tworzyć,
zarządzać i usuwać kolejki i tabele kolejek w Oracle Advanced Queuing.
PROCEDURE DBMS_AQADM.CREATE_QUEUE_TABLE (tabela_kolejki
IN VARCHAR2, typ_zawartości_kolejki IN VARCHAR2,
klauzula_przechowywania IN VARCHAR2 DEFAULT NULL,

lista_sortowania IN VARCHAR2 DEFAULT NULL,
wielu_konsumentów IN BOOLEAN DEFAULT FALSE,

grupowanie IN BINARY_INTEGER DEFAULT NONE, komentarz IN
VARCHAR2 DEFAULT NULL, auto_zatwierdzanie IN BOOLEAN
DEFAULT TRUE);

Tworzy tabelę kolejki o nazwie tabela_kolejki typu typ_zawartości_kolejki
(RAW lub nazwa obiektu typu TYPE).
PROCEDURE DBMS_AQADM.CREATE_QUEUE (nazwa_kolejki IN
VARCHAR2, tabela_kolejki IN VARCHAR2, typ_kolejki IN
BINARY_INTEGER DEFAULT NORMAL_QUEUE,

max_próby IN NUMBER DEFAULT 0, opóźnienie IN NUMBER
DEFAULT 0, czas_zachowania IN NUMBER DEFAULT 0, śledzenie
IN BOOLEAN DEFAULT FALSE,

komentarz IN VARCHAR2 DEFAULT NULL, auto_zatwierdzanie IN
BOOLEAN DEFAULT TRUE);

Tworzy kolejkę nazwa_kolejki w tabeli kolejki tabela_kolejki.
PROCEDURE DBMS_AQADM.DROP_QUEUE
(nazwa_kolejki IN VARCHAR2, auto_zatwierdzanie IN
BOOLEAN DEFAULT TRUE);

background image

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.

background image

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

background image

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,

background image

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

background image

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

background image

(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.
PROCEDURE DBMS_LOB.FILEOPEN
(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)

background image

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.
PROCEDURE DBMS_LOB.LOADFROMFILE
(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

background image

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

DBMS_LOCK

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

background image

= 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);

background image

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)

background image

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

background image

powinna mieć co najmniej pięć cyfr.
FUNCTION DBMS_RANDOM.RANDOM
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.
FUNCTION DBMS_ROWID.ROWID_CREATE
(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ć

background image

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.
FUNCTION DBMS_ROWID.ROWID_TO_EXTENDED
(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

background image

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

DBMS_SESSION

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);

background image

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.
PROCEDURE DBMS_SESSION.SET_ROLE

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

DBMS_ SHARED_POOL

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);

background image

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

background image

DBMS_SQL

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

background image

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

background image

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,

background image

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)

background image

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;

background image

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

background image

(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;

background image

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.

DBMS_SYSTEM

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.

background image


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

background image


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.
PROCEDURE DBMS_UTILITY.ANALYZE_PART_OBJECT
(schemat IN VARCHAR2 DEFAULT NULL,
nazwa_obiektu IN VARCHAR2 DEFAULT NULL,

background image

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;

background image

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;

background image

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

background image

(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)

background image

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

background image

(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

background image

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

background image

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,

background image

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)

background image

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.

background image

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.

background image


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;

background image

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

background image

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]

background image

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

background image

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

background image

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

background image


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

background image

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

background image

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

background image

CONSTANT BINARY_INTEGER := -1;


DBMS_AQ

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,

background image

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;


DBMS_LOB

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);

background image

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;


DBMS_LOCK

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;


DBMS_OUTPUT

TYPE chararr IS TABLE OF VARCHAR2(255)
INDEX BY BINARY_INTEGER;


DBMS_PIPE

maxwait CONSTANT INTEGER := 86400000;


DBMS_ROWID

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;

background image

rowid_type_extended

CONSTANT INTEGER := 1;

rowid_type_restricted

CONSTANT INTEGER := 0;


DBMS_SQL

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

background image

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;


UTL_FILE

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.


Wyjątki
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;

background image

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;

background image

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;

background image

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;


Wyszukiwarka

Podobne podstrony:
Excel 2003 PL Funkcje Leksykon kieszonkowy exfulk
Excel 2003 PL Funkcje Leksykon kieszonkowy exfulk
Excel 2003 PL Funkcje Leksykon kieszonkowy exfulk
Excel 2003 PL Funkcje Leksykon kieszonkowy exfulk
ebook Bartosz Gajda Excel 2003 PL Funkcje Leksykon kieszonkowy (exfulk) helion onepress free ebook
Excel 2003 PL Funkcje Leksykon kieszonkowy
Excel 2003 PL Funkcje Leksykon kieszonkowy
Excel 2003 PL Funkcje Leksykon kieszonkowy 2
Oracle PL SQL Pakiety i funkcje
helion%2c+o%27reilly+ +optymalizacja+oracle+sql+ +leksykon+kieszonkowy 5VYAOTMKBEMJVIKMQWPLPR26MA5UX
Optymalizacja Oracle SQL Leksykon kieszonkowy oporsq
Oracle Narzedzia Leksykon kieszonkowy ornalk
Optymalizacja Oracle SQL Leksykon kieszonkowy oporsq
Optymalizacja Oracle SQL Leksykon kieszonkowy

więcej podobnych podstron