Oracle9i_Programowanie_w_jezyku_PL_SQL_or9pls.pdf

(429 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Oracle9i. Programowanie
w jêzyku PL-SQL
Autor: Scott Urman
T³umaczenie: Rados³aw Meryk
ISBN: 83-7361-065-0
Format: B5, stron: 536
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
Wykorzystanie wbudowanego w system Oracle jêzyka PL/SQL w znacz¹cy sposób
zwiêksza wydajno æ programisty systemów bazodanowych. PL/SQL ³¹czy w sobie
mo¿liwo ci i elastyczno æ jêzyka czwartej generacji (4GL) SQL z konstrukcjami
proceduralnymi jêzyka trzeciej generacji (3GL). Konstrukcje proceduralne s¹ w pe³ni
zintegrowane z Oracle SQL, co daje w rezultacie jêzyk strukturalny o ogromnym
potencjale. Programy napisane w tym jêzyku umo¿liwiaj¹ obs³ugê danych zarówno
w samym systemie Oracle, jak i w zewnêtrznych aplikacjach.
Ksi¹¿ka „Oracle9i. Programowanie w jêzyku PL/SQL” wyja nia g³ówne w³a ciwo ci
jêzyka oraz ró¿nice w PL/SQL dla ró¿nych wersji bazy danych. Dziêki niej nauczysz siê
projektowaæ, testowaæ i uruchamiaæ aplikacje PL/SQL dzia³aj¹ce w wielu rodowiskach,
jak równie¿ poznasz szczegó³y zastosowania jêzyków SQL i PL/SQL, obs³ugi b³êdów,
zbioru podprogramów i pakietów, a tak¿e wiele zaawansowanych w³a ciwo ci.
Niniejsza pozycja umo¿liwia:
• Zapoznanie siê z ró¿nymi rodowiskami programistycznymi jêzyka PL/SQL,
których kopie znajduj¹ siê na do³¹czonej p³ycie CD
• Poznanie szczegó³ów sk³adni jêzyka PL/SQL: zmienne, typy danych, wyra¿enia,
operatory oraz struktury steruj¹ce
• Zapewnienie spójno ci danych dziêki instrukcjom sterowania transakcjami
dostêpnym w SQL-u
• Wykorzystanie kursorów, które pozwalaj¹ na tworzenie zapytañ zwracaj¹cych
wiele wierszy oraz jawn¹ kontrolê przetwarzania instrukcji SQL
• Tworzenie programów PL/SQL, które wykrywaj¹ i inteligentnie reaguj¹ na b³êdy
fazy wykonania
• Wykorzystanie mo¿liwo ci tworzenia kolekcji wielopoziomowych w systemie
Oracle9i
• Tworzenie i korzystanie z procedur, funkcji i pakietów
• Tworzenie wyzwalaczy DML zastêpuj¹cych i systemowych w celu wymuszania
z³o¿onych ograniczeñ danych
• Korzystanie z zalet jêzyka PL/SQL, takich jak: procedury zewnêtrzne, wbudowany
dynamiczny SQL, masowe powi¹zania oraz typy obiektowe
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorze................................................................................................................. 13
Wstęp ...................................................................................................................... 15
Część I
Wstęp i środowiska programisty ...........................................21
Dlaczego język PL/SQL?............................................................................................... 23
PL/SQL a praca w sieci............................................................................................ 25
Normy.................................................................................................................... 26
Właściwości języka PL/SQL.......................................................................................... 26
Struktura bloku ....................................................................................................... 26
Obsługa błędów....................................................................................................... 27
Zmienne i typy danych............................................................................................. 27
Instrukcje warunkowe.............................................................................................. 28
Konstrukcje pętli ..................................................................................................... 29
Kursory .................................................................................................................. 29
Procedury i funkcje ................................................................................................. 30
Pakiety ................................................................................................................... 31
Kolekcje ................................................................................................................. 32
Konwencje stosowane w ksią ce .................................................................................... 32
Wersje języka PL/SQL oraz bazy danych Oracle........................................................ 32
Czcionki ................................................................................................................. 34
Dokumentacja Oracle .............................................................................................. 34
Kod dostępny na płycie CD ...................................................................................... 34
Przykładowe tabele ....................................................................................................... 35
Podsumowanie.............................................................................................................. 40
Rozdział 1. Wprowadzenie do języka PL/SQL............................................................ 23
Rozdział 2. Środowiska programisty oraz wykonawcze.............................................. 41
Modele aplikacji a PL/SQL............................................................................................ 41
Model dwuwarstwowy............................................................................................. 41
Model trójwarstwowy .............................................................................................. 45
Połączenie z bazą danych......................................................................................... 46
Narzędzia programisty PL/SQL...................................................................................... 47
Program SQL*Plus.................................................................................................. 48
Program Rapid SQL ................................................................................................ 52
Program DBPartner Debugger .................................................................................. 56
Program SQL Navigator........................................................................................... 60
Program TOAD....................................................................................................... 64
Program SQL-Programmer....................................................................................... 68
Program PL/SQL Developer..................................................................................... 71
Narzędzia programistyczne — podsumowanie ........................................................... 73
Podsumowanie.............................................................................................................. 74
6
Oracle9i. Programowanie w języku PL/SQL
Część II
Podstawowe właściwości języka PL/SQL ..............................75
Blok PL/SQL................................................................................................................ 77
Podstawowa struktura bloku..................................................................................... 82
Jednostki leksykalne ...................................................................................................... 84
Identyfikatory ......................................................................................................... 84
Ograniczniki ........................................................................................................... 87
Literały................................................................................................................... 87
Komentarze ............................................................................................................ 89
Deklaracje zmiennych.................................................................................................... 91
Składnia deklaracji .................................................................................................. 91
Inicjowanie zmiennych ............................................................................................ 93
Typy danych w języku PL/SQL...................................................................................... 93
Typy skalarne ......................................................................................................... 94
Typy zło one ........................................................................................................ 103
Typy odnośników.................................................................................................. 103
Typy LOB ............................................................................................................ 103
Typy obiektowe .................................................................................................... 104
Wykorzystanie atrybutu %Type.............................................................................. 104
Podtypy definiowane przez u ytkownika ................................................................. 105
Konwersja pomiędzy typami danych ....................................................................... 106
Zakres i widoczność zmiennej ................................................................................ 108
Wyra enia i operatory.................................................................................................. 109
Przypisanie ........................................................................................................... 109
Wyra enia ............................................................................................................ 110
Struktury sterowania PL/SQL ...................................................................................... 113
Instrukcja IF-THEN-ELSE..................................................................................... 113
Instrukcja CASE ................................................................................................... 117
Pętle..................................................................................................................... 121
Instrukcje GOTO oraz etykiety ............................................................................... 125
Dyrektywy pragma ................................................................................................ 127
Rekordy w języku PL/SQL .......................................................................................... 128
Przypisanie rekordu ............................................................................................... 129
Zastosowanie operatora %ROWTYPE .................................................................... 131
Styl programowania w języku PL/SQL ......................................................................... 131
Wprowadzanie komentarzy .................................................................................... 132
Styl nazw zmiennych ............................................................................................. 133
Stosowanie du ych liter ......................................................................................... 133
Stosowanie odstępów............................................................................................. 133
Ogólne uwagi dotyczące stylu programowania ......................................................... 134
Podsumowanie............................................................................................................ 134
Rozdział 3. Podstawy języka PL/SQL ....................................................................... 77
Rozdział 4. SQL w języku PL/SQL .......................................................................... 135
Instrukcje SQL ........................................................................................................... 135
Wykorzystanie instrukcji SQL w języku PL/SQL..................................................... 136
Stosowanie dynamicznego SQL.............................................................................. 137
Stosowanie instrukcji DML w języku PL/SQL............................................................... 137
Instrukcja SELECT ............................................................................................... 139
Instrukcja INSERT................................................................................................ 141
Instrukcja UPDATE .............................................................................................. 142
Instrukcja DELETE............................................................................................... 143
Klauzula WHERE ................................................................................................. 144
Wiązania zbiorcze ................................................................................................. 147
Klauzula RETURNING ......................................................................................... 149
Spis treści
7
Odnośniki do tabel................................................................................................. 150
Powiązania bazy danych ........................................................................................ 151
Synonimy ............................................................................................................. 151
Pseudokolumny .......................................................................................................... 152
Pseudokolumny CURRVAL oraz NEXTVAL.......................................................... 152
Pseudokolumna LEVEL......................................................................................... 153
Pseudokolumna ROWID........................................................................................ 153
Pseudokolumna ROWNUM ................................................................................... 154
Instrukcje GRANT i REVOKE. Uprawnienia ................................................................ 154
Uprawnienia obiektowe a uprawnienia systemowe ................................................... 155
Instrukcje GRANT oraz REVOKE.......................................................................... 155
Role ..................................................................................................................... 157
Sterowanie transakcjami .............................................................................................. 159
Instrukcja COMMIT a instrukcja ROLLBACK ........................................................ 159
Punkty zachowania................................................................................................ 160
Transakcje a bloki ................................................................................................. 161
Transakcje autonomiczne ....................................................................................... 162
Podsumowanie............................................................................................................ 167
Rozdział 5. Wbudowane funkcje SQL...................................................................... 169
Wstęp ........................................................................................................................ 169
Funkcje znakowe zwracające wartości znakowe............................................................. 170
Funkcje SUBSTR, SUBSTRB, SUBSTRC, SUBSTR2 oraz SUBSTR4 ..................... 173
SOUNDEX........................................................................................................... 174
Funkcje znakowe zwracające wartości liczbowe............................................................. 175
Funkcje INSTR, INSTRB, INSTRC, INSTR2 oraz INSTR4 ..................................... 176
Funkcje LENGTH, LENGTHB, LENGTHC, LENGTH2 ? oraz LENGTH4............... 177
Funkcje NLS .............................................................................................................. 178
Funkcje numeryczne ................................................................................................... 180
Funkcja WIDTH_BUCKET ................................................................................... 181
Funkcje związane z datą .............................................................................................. 182
Arytmetyka dat ..................................................................................................... 184
Funkcje konwersji ....................................................................................................... 186
Funkcja TO_CHAR (daty lub etykiety) ................................................................... 189
Funkcja TO_CHAR (liczby)................................................................................... 191
Funkcja TO_DATE ............................................................................................... 193
Funkcja TO_NUMBER ......................................................................................... 193
Funkcje TO_TIMESTAMP oraz TO_TIMESTAMP_TZ .......................................... 194
Funkcje agregacji oraz funkcje analityczne .................................................................... 194
Inne funkcje ............................................................................................................... 196
Funkcja DUMP..................................................................................................... 199
Funkcja USERENV............................................................................................... 201
Podsumowanie............................................................................................................ 202
Rozdział 6. Kursory ............................................................................................... 203
Czym jest kursor? ....................................................................................................... 203
Przetwarzanie kursorów jawnych............................................................................ 204
Przetwarzanie kursorów niejawnych ....................................................................... 212
Pętle pobierania danych kursora ................................................................................... 214
Pętle proste........................................................................................................... 214
Pętle WHILE ........................................................................................................ 216
Pętle FOR kursora................................................................................................. 217
Wyjątek NO_DATA_FOUND a atrybut %NOTFOUND .......................................... 219
Kursory z klauzulą FOR UPDATE instrukcji SELECT............................................. 219
8
Oracle9i. Programowanie w języku PL/SQL
Zmienne kursora ......................................................................................................... 223
Deklaracja zmiennej kursora................................................................................... 224
Przydzielenie obszaru pamięci dla zmiennych kursora .............................................. 225
Otwieranie zmiennej kursora dla zapytania .............................................................. 226
Zamykanie zmiennych kursora ............................................................................... 227
Pierwszy przykład zmiennej kursora ....................................................................... 227
Drugi przykład zmiennej kursora ............................................................................ 229
Ograniczenia u ycia zmiennych kursora .................................................................. 230
Podsumowanie............................................................................................................ 231
Rozdział 7. Obsługa błędów ................................................................................... 233
Czym jest wyjątek? ..................................................................................................... 233
Deklarowanie wyjątków......................................................................................... 235
Zgłaszanie wyjątków ............................................................................................. 239
Obsługa wyjątków................................................................................................. 240
Dyrektywa pragma EXCEPTION_INIT .................................................................. 246
Zastosowanie funkcji RAISE_APPLICATION_ERROR .......................................... 247
Propagacja wyjątków .................................................................................................. 250
Wyjątki wywołane w sekcji wykonania ................................................................... 250
Wyjątki zgłaszane w sekcji deklaracji...................................................................... 252
Wyjątki zgłaszane w sekcji wyjątków...................................................................... 254
Wskazówki dotyczące wyjątków .................................................................................. 256
Zakres wyjątków................................................................................................... 256
Unikanie nieobsługiwanych wyjątków..................................................................... 257
Maskowanie lokalizacji błędu................................................................................. 258
Ogólny program obsługi błędów ................................................................................... 259
Podsumowanie............................................................................................................ 266
Rozdział 8. Kolekcje.............................................................................................. 267
Deklaracje i stosowanie typów kolekcji ......................................................................... 267
Tabele indeksowane .............................................................................................. 268
Tabele zagnie d one.............................................................................................. 272
Tablice VARRAY ................................................................................................. 276
Kolekcje wielopoziomowe ..................................................................................... 278
Porównanie pomiędzy typami kolekcji .................................................................... 279
Kolekcje w bazie danych ............................................................................................. 281
Implikacje dotyczące kolekcji zapisanych w bazie danych......................................... 281
Modyfikowanie całych kolekcji .............................................................................. 285
Działania z indywidualnymi elementami kolekcji ..................................................... 291
Metody kolekcji .......................................................................................................... 297
EXISTS ............................................................................................................... 297
COUNT ............................................................................................................... 299
LIMIT.................................................................................................................. 300
FIRST i LAST ...................................................................................................... 301
NEXT i PRIOR..................................................................................................... 301
EXTEND ............................................................................................................. 302
TRIM................................................................................................................... 304
DELETE .............................................................................................................. 306
Podsumowanie............................................................................................................ 308
Część III Dodatkowe właściwości języka PL/SQL ..............................309
Rozdział 9. Tworzenie procedur, funkcji i pakietów................................................. 311
Procedury i funkcje ..................................................................................................... 311
Tworzenie podprogramu ........................................................................................ 312
Parametry podprogramów ...................................................................................... 318
Zgłoś jeśli naruszono regulamin