Oracle_Database_11g_Programowanie_w_jezyku_PL_SQL_or11ps.pdf

(596 KB) Pobierz
Oracle Database 11g.
Programowanie
w jêzyku PL/SQL
Autor: Michael McLaughlin
T³umaczenie: Tomasz Walczak
ISBN: 978-83-246-1938-2
Tytu³ orygina³u:
Oracle Database 11g
PL/SQL Programming
Format: 168x237, stron: 904
Poznaj tajniki programowania w jêzyku PL/SQL
• Jak pisaæ kod w jêzyku PL/SQL?
• Jak zarz¹dzaæ b³êdami?
• Jak tworzyæ funkcje i procedury?
PL/SQL to wbudowany jêzyk proceduralny baz danych Oracle. Jest on rozszerzeniem
jêzyka SQL i umo¿liwia tworzenie takich konstrukcji, jak pêtle, instrukcje warunkowe,
zmienne i wyzwalacze. Dziêki temu mo¿na zautomatyzowaæ wiele czynnoœci
administracyjnych oraz rejestrowaæ zmiany danych lub nadzorowaæ ich modyfikacje.
Jêzyk ten pozwala wiêc na budowanie dynamicznych i stabilnych aplikacji, opartych
na bazach danych typu klient-serwer.
Ksi¹¿ka „Oracle Database 11g. Programowanie w jêzyku PL/SQL” zawiera omówienie
wszystkich najnowszych funkcji i narzêdzi tego jêzyka programowania. Szczegó³owe
wyjaœnienia wzbogacone zosta³y o studia przypadków oraz przyk³adowy kod, który
mo¿na wkleiæ do w³asnej aplikacji. Z tym podrêcznikiem nauczysz siê pobieraæ
i modyfikowaæ informacje w bazach danych, tworzyæ wartoœciowe instrukcje w jêzyku
PL/SQL, skutecznie wykonywaæ zapytania i budowaæ niezawodne zabezpieczenia.
Dowiesz siê tak¿e miêdzy innymi, jak stosowaæ procedury, funkcje, pakiety, kolekcje
i wyzwalacze oraz jak zoptymalizowaæ wydajnoœæ aplikacji.
• Jêzyk PL/SQL — architektura i funkcje
• Struktury steruj¹ce
• Instrukcje
• Zarz¹dzanie b³êdami
• Programowanie w jêzyku PL/SQL
• Kolekcje
• Obiekty i pakiety
• Wyzwalacze
• Komunikacja miêdzy sesjami
• Podprogramy zewnêtrzne
• Typy obiektowe
• Biblioteka jêzyka Java
• Rozwój aplikacji sieciowych
Twórz solidne aplikacje sieciowe w jêzyku PL/SQL
Spis treści
O autorze ................................................................................................. 15
Wprowadzenie .......................................................................................... 17
Część I
Podstawy języka PL/SQL ...................................................... 23
Tło historyczne ............................................................................................................................25
Architektura .................................................................................................................................27
Podstawowa struktura bloków .....................................................................................................30
Nowe funkcje bazy Oracle 10g ....................................................................................................33
Pakiety wbudowane ...............................................................................................................33
Ostrzeżenia generowane w czasie kompilacji .......................................................................34
Kompilacja warunkowa .........................................................................................................34
Działanie liczbowych typów danych .....................................................................................35
Zoptymalizowany kompilator języka PL/SQL ......................................................................35
Wyrażenia regularne .............................................................................................................36
Różne możliwości ograniczania
łańcuchów
znaków .............................................................37
Operatory zbiorów .................................................................................................................37
Stos wywołań z informacjami o błędach ...............................................................................37
Nakładki na programy składowane w języku PL/SQL ..........................................................38
Nowe funkcje bazy Oracle 11g ....................................................................................................39
Automatyczne rozwijanie podprogramów w miejscu wywołania .........................................40
Instrukcja CONTINUE ..........................................................................................................41
Zapisywanie działania funkcji w języku PL/SQL między sesjami ........................................41
Rozszerzenia dynamicznego SQL-a ......................................................................................42
Wywołania w notacji mieszanej, opartej na nazwie i opartej na pozycji ...............................42
Wieloprocesowa pula połączeń .............................................................................................44
Hierarchiczny program profilujący języka PL/SQL ..............................................................46
Generowanie kodu macierzystego przez macierzysty kompilator języka PL/SQL ...............47
Narzędzie PL/Scope ..............................................................................................................48
Wzbogacone wyrażenia regularne .........................................................................................48
Typ danych SIMPLE_INTEGER ..........................................................................................48
Bezpośrednie wywoływanie sekwencji w instrukcjach w języku SQL .................................48
Podsumowanie .............................................................................................................................49
Rozdział 1. Przegląd języka Oracle PL/SQL ................................................................. 25
6
Oracle Database 11g. Programowanie w języku PL/SQL
Rozdział 2. Podstawy języka PL/SQL .......................................................................... 51
Struktura bloków języka PL/SQL ................................................................................................52
Zmienne, operacje przypisania i operatory ..................................................................................55
Struktury kontrolne ......................................................................................................................56
Struktury warunkowe ............................................................................................................57
Struktury iteracyjne ...............................................................................................................60
Funkcje, procedury i pakiety składowane ....................................................................................63
Funkcje składowane ..............................................................................................................63
Procedury ..............................................................................................................................65
Pakiety ...................................................................................................................................66
Zasięg transakcji ..........................................................................................................................67
Pojedynczy zasięg transakcji .................................................................................................67
Wiele zasięgów transakcji .....................................................................................................68
Wyzwalacze bazodanowe ............................................................................................................69
Podsumowanie .............................................................................................................................70
Rozdział 3. Podstawowe elementy języka ................................................................... 71
Znaki i jednostki leksykalne ........................................................................................................71
Ograniczniki ..........................................................................................................................72
Identyfikatory ........................................................................................................................76
Literały ..................................................................................................................................77
Komentarze ...........................................................................................................................80
Struktura bloków .........................................................................................................................80
Typy zmiennych ..........................................................................................................................85
Skalarne typy danych ............................................................................................................88
Duże obiekty (typy LOB) ....................................................................................................105
Złożone typy danych ...........................................................................................................109
Systemowe kursory referencyjne .........................................................................................116
Zasięg zmiennych ......................................................................................................................117
Podsumowanie ...........................................................................................................................119
Rozdział 4. Struktury sterujące ................................................................................ 121
Instrukcje warunkowe ................................................................................................................122
Instrukcje IF ........................................................................................................................127
Instrukcje CASE ..................................................................................................................130
Instrukcje kompilacji warunkowej ......................................................................................133
Instrukcje iteracyjne ..................................................................................................................134
Pętle proste ..........................................................................................................................135
Pętle FOR ............................................................................................................................139
Pętle WHILE .......................................................................................................................141
Kursory ......................................................................................................................................143
Kursory niejawne ................................................................................................................143
Kursory jawne .....................................................................................................................146
Instrukcje masowe .....................................................................................................................152
Instrukcje BULK COLLECT INTO ....................................................................................153
Instrukcje FORALL ............................................................................................................158
Podsumowanie ...........................................................................................................................161
Rozdział 5. Zarządzanie błędami ............................................................................... 163
Typy i zasięg wyjątków .............................................................................................................164
Błędy kompilacji .................................................................................................................165
Błędy czasu wykonania .......................................................................................................167
Wbudowane funkcje do zarządzania wyjątkami ........................................................................172
Spis treści
7
Wyjątki zdefiniowane przez użytkownika .................................................................................174
Deklarowanie wyjątków zdefiniowanych przez użytkownika .............................................174
Dynamiczne wyjątki zdefiniowane przez użytkownika .......................................................175
Funkcje do zarządzania stosem błędów .....................................................................................177
Zarządzanie stosem błędów .................................................................................................177
Formatowanie stosu błędów ................................................................................................181
Zarządzanie wyjątkami za pomocą wyzwalaczy bazy danych ..................................................183
Wyzwalacze bazy danych i błędy krytyczne .......................................................................184
Wyzwalacze bazy danych i błędy niekrytyczne ..................................................................189
Podsumowanie ...........................................................................................................................191
Część II
Programowanie w języku PL/SQL ........................................ 193
Architektura funkcji i procedur .................................................................................................196
Zasięg transakcji ........................................................................................................................202
Wywoływanie podprogramów ...................................................................................................203
Notacja oparta na pozycji ....................................................................................................204
Notacja oparta na nazwie ....................................................................................................204
Notacja mieszana .................................................................................................................204
Notacja z pominięciem ........................................................................................................204
Notacja w wywołaniach w języku SQL ...............................................................................205
Funkcje ......................................................................................................................................205
Opcje używane przy tworzeniu funkcji ...............................................................................207
Funkcje o parametrach przekazywanych przez wartość ......................................................217
Funkcje o parametrach przekazywanych przez referencję ...................................................224
Procedury ..................................................................................................................................227
Procedury o parametrach przekazywanych przez wartość ...................................................228
Procedury o parametrach przekazywanych przez referencję ...............................................232
Podsumowanie ...........................................................................................................................238
Rozdział 6. Funkcje i procedury ................................................................................ 195
Rozdział 7. Kolekcje ................................................................................................ 239
Rodzaje kolekcji ........................................................................................................................241
Tablice VARRAY ...............................................................................................................242
Tabele zagnieżdżone ...........................................................................................................257
Używanie tablic asocjacyjnych ...........................................................................................271
Operatory zbiorów działające na kolekcjach .............................................................................279
Operator CARDINALITY ..................................................................................................281
Operator EMPTY ................................................................................................................281
Operator MEMBER OF ......................................................................................................282
Operator MULTISET EXCEPT ..........................................................................................282
Operator MULTISET INTERSECT ....................................................................................282
Operator MULTISET UNION ............................................................................................283
Operator SET ......................................................................................................................284
Operator SUBMULTISET ..................................................................................................285
API Collection ...........................................................................................................................286
Metoda COUNT ..................................................................................................................287
Metoda DELETE .................................................................................................................288
Metoda EXISTS ..................................................................................................................289
Metoda EXTEND ................................................................................................................291
Metoda FIRST .....................................................................................................................292
Metoda LAST ......................................................................................................................293
Metoda LIMIT ....................................................................................................................294
8
Oracle Database 11g. Programowanie w języku PL/SQL
Metoda NEXT .....................................................................................................................295
Metoda PRIOR ....................................................................................................................295
Metoda TRIM ......................................................................................................................295
Podsumowanie ...........................................................................................................................297
Rozdział 8. Duże obiekty .......................................................................................... 299
Duże obiekty znakowe — typy CLOB i NCLOB ......................................................................300
Odczyt plików oraz zapis danych w kolumnach CLOB i NCLOB
przy użyciu języka PL/SQL ..............................................................................................305
Przesyłanie obiektów typu CLOB do bazy danych .............................................................308
Duże obiekty binarne — typ danych BLOB ..............................................................................309
Odczyt plików oraz zapis danych w kolumnach BLOB przy użyciu języka PL/SQL .........311
Przesyłanie obiektów typu BLOB do bazy danych .............................................................314
Mechanizm SecureFiles .............................................................................................................315
Pliki binarne — typ BFILE ........................................................................................................317
Tworzenie i używanie katalogów wirtualnych ....................................................................318
Wczytywanie
ścieżek
kanonicznych i nazw plików ............................................................325
Pakiet DBMS_LOB ...................................................................................................................333
Stałe pakietu ........................................................................................................................334
Wyjątki pakietu ...................................................................................................................335
Metody do otwierania i zamykania .....................................................................................335
Metody do manipulowania dużymi obiektami ....................................................................337
Metody do introspekcji ........................................................................................................343
Metody do obsługi obiektów typu BFILE ...........................................................................346
Metody do obsługi tymczasowych dużych obiektów ..........................................................347
Podsumowanie ...........................................................................................................................348
Rozdział 9. Pakiety .................................................................................................. 349
Architektura pakietu ..................................................................................................................350
Referencje uprzedzające ......................................................................................................351
Przeciążanie .........................................................................................................................353
Specyfikacja pakietu ..................................................................................................................355
Zmienne ..............................................................................................................................358
Typy danych ........................................................................................................................360
Komponenty — funkcje i procedury ...................................................................................363
Ciało pakietu ..............................................................................................................................363
Zmienne ..............................................................................................................................365
Typy ....................................................................................................................................367
Komponenty — funkcje i procedury ...................................................................................368
Uprawnienia osoby definiującej i wywołującej .........................................................................371
Przyznawanie uprawnień i synonimy ..................................................................................372
Wywołania zdalne ...............................................................................................................374
Zarządzanie pakietami w katalogu bazy danych ........................................................................374
Wyszukiwanie, walidacja i opisywanie pakietów ...............................................................375
Sprawdzanie zależności .......................................................................................................376
Metody sprawdzania poprawności — znaczniki czasu asygnatury .....................................377
Podsumowanie ...........................................................................................................................378
Rozdział 10. Wyzwalacze ........................................................................................... 379
Wprowadzenie do wyzwalaczy .................................................................................................379
Architektura wyzwalaczy w bazie danych .................................................................................382
Wyzwalacze DDL .....................................................................................................................384
Funkcje-atrybuty zdarzeń ....................................................................................................385
Tworzenie wyzwalaczy DDL ..............................................................................................395
Zgłoś jeśli naruszono regulamin