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