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.

Opis wybranych pakietów

DBMS_DESCRIBE

Pakiet DBMS_DESCRIBE zawiera pojedynczą procedurę wykorzystywaną do opisu argumentów magazynowanej procedury lub funkcji PL/SQL.

PROCEDURE DBMS_DESCRIBE.DESCRIBE_PROCEDURE (nazwa_obiektu IN VARCHAR2, zarezerwowane1 IN VARCHAR2, zarezerwowane2 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_LOB

Pakiet DBMS_LOB zawiera metody zapewniające dostęp i obsługę obiektów LOB (ang. large objects). Obiekty LOB obejmują obiekty: BLOB (ang. binary large objects), CLOB (ang. character large objects), NCLOB (ang. National Language Support character large objects) oraz BFILE (ang. binary files). Klauzula CHARACTER SET ANY_CS w deklaracjach CLOB określa lokalizatory CLOB lub NCLOB (tylko dla systemu Oracle8).

PROCEDURE DBMS_LOB.APPEND

(docelowy_lob IN OUT BLOB, źródłowy_lob IN BLOB);

PROCEDURE DBMS_LOB.APPEND

(docelowy_lob IN OUT CLOB CHARACTER SET

ANY_CS,

źródłowy_lob IN CLOB CHARACTER SET

docelowy_lob%CHARSET) ;

Dołącza zawartość źródłowego obiektu LOB źródłowy_lob do docelowego LOB docelowy_lob. Oba obiekty LOB muszą być tego samego typu: BLOB, CLOB lub NCLOB.

FUNCTION DBMS_LOB.COMPARE

(lob_1 IN BLOB | CLOB CHARACTER SET ANY_CS,

lob_2 IN BLOB | CLOB CHARACTER SET lob_1%CHARSET,

ilość IN INTEGER := 4294967295,

offset_1 IN INTEGER := 1,

offset_2 IN INTEGER := 1)

RETURN INTEGER;

FUNCTION DBMS_LOB.COMPARE

(plik_1 IN BFILE,

plik_2 IN BFILE,

ilość IN INTEGER,

offset_1 IN INTEGER := 1,

offset_2 IN INTEGER := 1)

RETURN INTEGER;

Porównuje wejściowe obiekty LOB lob_1 i lob_2 lub plik_1 i plik_2 na obszarze ilość bajtów, opcjonalnie rozpoczynając od pozycji offset_1 i offset_2 bajtów w plikach wejściowych. Oba obiekty muszą być tego samego typu LOB: BLOB, CLOB, NCLOB lub BFILE.

Zwraca wartość 0, jeśli obiekty są dokładnie takie same, wartość różną od zera w przypadku różnicy lub NULL, jeśli którykolwiek z parametrów ilość, offtet_1 lub offset_2 są bądź mniejsze od 1, bądź większe od lobmaxsize.

PROCEDURE DBMS_LOB.COPY

(docelowy_lob IN OUT BLOB,

źródlowy_lob IN BLOB,

ilość IN INTEGER,

docelowy_offset IN INTEGER := 1,

źródłowy_offset IN INTEGER := 1);

PROCEDURE DBMS_LOB.COPY

(docelowy_lob IN OUT CLOB CHARACTER SET ANY_CS,

źródłowy_lob IN CLOB CHARACTER SET dest_lob%CHARSET,

ilość IN INTEGER,

docelowy_offset IN INTEGER := 1,

źródlowy_offset IN INTEGER := 1);

Kopiuje ilość bajtów (BLOB) lub znaków (CLOB) ze źródłowego LOB źródłowy_lob, rozpoczynając od pozycji źródłowy_offset, bajtów lub znaków do obiektu LOB docelowy_lob od pozycji docelowy_offset. Oba obiekty muszą być tego samego typu LOB: BLOB, CLOB lub NCLOB.

PROCEDURE DBMS_LOB.ERASE

(lob_lok IN OUT BLOB | CLOB CHARACTER SET ANY_CS, ilość IN OUT INTEGER, Offset IN INTEGER := 1);

Wymazuje (wypełnia wartością zero) określoną ilość ilość bajtów (BLOB) lub znaków (CLOB) w obiekcie LOB lob_lok, począwszy od offset bajtów lub znaków w obiekcie LOB.

PROCEDURE DBMS_LOB.FILECLOSE

(lok_pliku in out bfile);

Zamyka obiekty BFILE lok_pliku, niezależnie od tego, czy jest otwarty, czy nie.

PROCEDURE DBMS_LOB.FILECLOSEALL;

Zamyka wszystkie obiekty BFILE dla bieżącej sesji.

FUNCTION DBMS_LOB.FILEEXISTS

(lok_pliku IN BFILE)

RETURN INTEGER;

Zwraca 1, jeśli obiekt BFILE lok_pliku istnieje, lub 0 w przeciwnym przypadku.

PROCEDURE DBMS_LOB.FILEGETNAME

(lok_pliku IN BFILE, alias_katalogu OUT VARCHAR2, nazwa_pliku OUT VARCHAR2);

Pobiera alias katalogu (jaki został poprzednio zdefiniowany poleceniem CREATE DIRECTORY) i nazwę pliku dla danego lokalizatora lok_pliku.

FUNCTION DBMS_LOB.FILEISOPEN

(lok_pliku IN BFILE)

RETURN INTEGER;

Zwraca l, jeśli BFILE lok_pliku jest otwarty, lub 0 w przeciwnym przypadku.

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)

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

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

Ten pakiet dostarcza mechanizmy do wyświetlania informacji z programu PL/SQL na urządzeniu wyjściowym sesji. Można go wykorzystać jako proste narzędzie do debuggingu lub śledzenia.

PROCEDURE DBMS_OUTPUT.DISABLE;

Wyłącza wyjście dla pakietu i czyści bufor DBMS_OUTPUT.

PROCEDURE DBMS_OUTPUT.ENABLE

(rozmiar_bufora IN INTEGER DEFAULT 20000);

Włącza wyjście dla pakietu i ustawia maksymalny rozmiar bufora w bajtach na wartość rozmiar_bufora.

PROCEDURE DBMS_OUTPUT.GET_LINE

(linia OUT VARCHAR2, status OUT INTEGER);

Pobiera następną linię tekstu z bufora i umieszcza ją w zmiennej linia. Status równy 0 oznacza pomyślne zakończenie operacji; 1 oznacza wystąpienie blędu.

PROCEDURE DBMS_OUTPUT.GET_LINES

(linia OUT DBMS_OUTPUT.CHARARR, ilosc_linii IS OUT INTEGER);

Pobiera ilość_linii linii z bufora i umieszcza je w tablicy PL/SQL.

PROCEDURE DBMS_OUTPUT.NEW_LINE;

Zapisuje znak nowej linii do bufora wyjściowego DBMS_OUTPUT.

PROCEDURE DBMS_OUTPUT.PUT

(a IN DATE|NUMBER|VARCHAR2);

Wstawia dane zawarte w a do bufora DBMS_OUTPUT i nie dodaje znaku nowej linii.

PROCEDURE DBMS_OUTPUT.PUT_LINE

(a IN DATE|NUMBER|VARCHAR2);

Wstawia dane zawarte w a do bufora DBMS_OUTPUT i dodaje znak nowej linii.

UTL_FILE

Pakiet UTL_FILE umożliwia odczytywanie i zapisywanie plików systemu operacyjnego serwera, na jakim pracuje baza danych Oracle z programów PL/SQL.

PROCEDURE UTL_FILE.FCLOSE

(plik IN OUT FILE_TYPE);

Zamyka plik identyfikowany przez uchwyt pliku plik i ustawia wartość id pliku na NULL.

PROCEDURE UTL_FILE.FCLOSE_ALL;

Zamyka wszystkie otwarte pliki, przy czym pole id uchwytu pliku nie zostanie ustawione na wartość NULL.

PROCEDURE UTL_FILE.FFLUSH

(plik IN FILE_TYPE);

Wymusza natychmiastowe zapisanie zawartości bufora danych dla pliku plik.

FUNCTION UTL_FILE.FOPEN

(położenie IN VARCHAR2, nazwa_pliku IN VARCHAR2, tryb otwarcia IN VARCHAR2;

RETURN FILE_TYPE;

Zwraca uchwyt pliku typu UTL_FILE.FILE_TYPE po pomyślnym otwarciu pliku nazwa_pliku znajdującego się w katalogu położenie w trybie tryb_otwarcia lub wywołuje wyjątek.

Dopuszczalne tryby otwarcia to:

R = otwiera plik w trybie tylko-do-odczytu.

W = otwiera plik w trybie zapisu i nadpisuje zawartość.

A = otwiera plik w trybie zapisu i dopisuje zawartość.

Dopuszczalne wartości parametru położenie określa parametr pliku konfiguracyjnego Oracle UTL_FILE_DIR.

PROCEDURE UTL_FILE.GET_LINE

(plik IN FILE_TYPE,

bufor OUT VARCHAR2);

Odczytuje kolejną linię pliku plik do bufora bufor. Wywołuje wyjątek NO_DATA_FOUND, gdy osiągnięto koniec pliku lub VALUE_ERROR, gdy wielkość bufora jest za mała.

FUNCTION UTL_FILE.IS_OPEN

(plik IN FILE_TYPE)

RETURN BOOLEAN;

Zwraca wartość TRUE, jeśli uchwyt pliku plik jest otwarty w dowolnym trybie, lub FALSE w przeciwnym przypadku.

PROCEDURE UTL_FILE.NEW_LINE

(plik IN FILE_TYPE, ile IN NATURAL := 1);

Zapisuje ile znaków nowej linii w pliku plik.

PROCEDURE UTL_FILE.PUT

(plik IN FILE_TYPE,

bufor IN VARCHAR2);

Zapisuje dane z bufora do pliku plik bez znaku końca nowej linii.

PROCEDURE UTL_FILE.PUT_LINE

(plik IN FILE_TYPE,

bufor IN VARCHAR2);

Zapisuje dane z bufora do pliku plik, dołączając znak końca nowej linii.

PROCEDURE UTL_FILE.PUTF

(plik IN FILE_TYPE,

format IN VARCHAR2,

argl IN VARCHAR2 DEFAULT NULL,

arg2 IN VARCHAR2 DEFAULT NULL,

arg3 IN VARCHAR2 DEFAULT NULL,

arg4 IN VARCHAR2 DEFAULT NULL,

arg5 IN VARCHAR2 DEFAULT NULL);

Zapisuje sformatowany tekst do pliku plik przy użyciu szablonu format, podmieniając maksymalnie pięć elementów %s formatu na wartości argl ... arg5.format może zawierać następujące elementy:dowolny tekst, %s oznaczający podmianę argN (do pięciu argumentów) lub %n oznaczający nową linię (dowolna wartość jest dozwolona).