Oracle9i Programowanie w jezyku PLSQL.pdf

(446 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Oracle9 i . Programowanie
w jêzyku PL-SQL
SPIS TRECI
KATALOG KSI¥¯EK
Autor: Scott Urman
T³umaczenie: Rados³aw Meryk
ISBN: 83-7361-065-0
Format: B5, stron: 536
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
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¿liwoci 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” wyjania g³ówne w³aciwoci
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³aciwoci.
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ójnoci 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¿liwoci 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
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
677872009.003.png 677872009.004.png 677872009.005.png 677872009.006.png 677872009.001.png 677872009.002.png
Spis treci
O Autorze.................................................................................................................13
Wstp......................................................................................................................15
Cz I Wstp i rodowiska programisty ...........................................21
Rozdział 1. Wprowadzenie do jzyka PL/SQL............................................................23
Dlaczego jzyk PL/SQL?...............................................................................................23
PL/SQL a praca w sieci............................................................................................25
Normy....................................................................................................................26
Wła"ciwo"ci jzyka PL/SQL..........................................................................................26
Struktura bloku.......................................................................................................26
Obsługa błdów.......................................................................................................27
Zmienne i typy danych.............................................................................................27
Instrukcje warunkowe..............................................................................................28
Konstrukcje ptli.....................................................................................................29
Kursory..................................................................................................................29
Procedury i funkcje.................................................................................................30
Pakiety...................................................................................................................31
Kolekcje.................................................................................................................32
Konwencje stosowane w ksi45ce....................................................................................32
Wersje jzyka PL/SQL oraz bazy danych Oracle........................................................32
Czcionki.................................................................................................................34
Dokumentacja Oracle..............................................................................................34
Kod dostpny na płycie CD......................................................................................34
Przykładowe tabele.......................................................................................................35
Podsumowanie..............................................................................................................40
Rozdział 2. "rodowiska programisty oraz wykonawcze..............................................41
Modele aplikacji a PL/SQL............................................................................................41
Model dwuwarstwowy.............................................................................................41
Model trójwarstwowy..............................................................................................45
Poł4czenie z baz4 danych.........................................................................................46
Narzdzia 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
Narzdzia programistyczne — podsumowanie...........................................................73
Podsumowanie..............................................................................................................74
 
6
Oracle9i. Programowanie w jzyku PL/SQL
Cz II Podstawowe właciwoci jzyka PL/SQL..............................75
Rozdział 3. Podstawy jzyka PL/SQL.......................................................................77
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 jzyku PL/SQL......................................................................................93
Typy skalarne.........................................................................................................94
Typy zło5one........................................................................................................103
Typy odno"ników..................................................................................................103
Typy LOB............................................................................................................103
Typy obiektowe....................................................................................................104
Wykorzystanie atrybutu %Type..............................................................................104
Podtypy definiowane przez u5ytkownika.................................................................105
Konwersja pomidzy typami danych.......................................................................106
Zakres i widoczno"C zmiennej................................................................................108
Wyra5enia i operatory..................................................................................................109
Przypisanie...........................................................................................................109
Wyra5enia............................................................................................................110
Struktury sterowania PL/SQL......................................................................................113
Instrukcja IF-THEN-ELSE.....................................................................................113
Instrukcja CASE...................................................................................................117
Ptle.....................................................................................................................121
Instrukcje GOTO oraz etykiety...............................................................................125
Dyrektywy pragma................................................................................................127
Rekordy w jzyku PL/SQL..........................................................................................128
Przypisanie rekordu...............................................................................................129
Zastosowanie operatora %ROWTYPE....................................................................131
Styl programowania w jzyku PL/SQL.........................................................................131
Wprowadzanie komentarzy....................................................................................132
Styl nazw zmiennych.............................................................................................133
Stosowanie du5ych liter.........................................................................................133
Stosowanie odstpów.............................................................................................133
Ogólne uwagi dotycz4ce stylu programowania.........................................................134
Podsumowanie............................................................................................................134
Rozdział 4. SQL w jzyku PL/SQL ..........................................................................135
Instrukcje SQL...........................................................................................................135
Wykorzystanie instrukcji SQL w jzyku PL/SQL.....................................................136
Stosowanie dynamicznego SQL..............................................................................137
Stosowanie instrukcji DML w jzyku PL/SQL...............................................................137
Instrukcja SELECT...............................................................................................139
Instrukcja INSERT................................................................................................141
Instrukcja UPDATE..............................................................................................142
Instrukcja DELETE...............................................................................................143
Klauzula WHERE.................................................................................................144
Wi4zania zbiorcze.................................................................................................147
Klauzula RETURNING.........................................................................................149
Spis treci
7
Odno"niki do tabel.................................................................................................150
Powi4zania 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
Wstp........................................................................................................................169
Funkcje znakowe zwracaj4ce warto"ci znakowe.............................................................170
Funkcje SUBSTR, SUBSTRB, SUBSTRC, SUBSTR2 oraz SUBSTR4.....................173
SOUNDEX...........................................................................................................174
Funkcje znakowe zwracaj4ce 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 zwi4zane z dat4..............................................................................................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
Ptle pobierania danych kursora...................................................................................214
Ptle proste...........................................................................................................214
Ptle WHILE........................................................................................................216
Ptle FOR kursora.................................................................................................217
Wyj4tek NO_DATA_FOUND a atrybut %NOTFOUND..........................................219
Kursory z klauzul4 FOR UPDATE instrukcji SELECT.............................................219
8
Oracle9i. Programowanie w jzyku PL/SQL
Zmienne kursora.........................................................................................................223
Deklaracja zmiennej kursora...................................................................................224
Przydzielenie obszaru pamici 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 u5ycia zmiennych kursora..................................................................230
Podsumowanie............................................................................................................231
Rozdział 7. Obsługa błdów...................................................................................233
Czym jest wyj4tek?.....................................................................................................233
Deklarowanie wyj4tków.........................................................................................235
Zgłaszanie wyj4tków.............................................................................................239
Obsługa wyj4tków.................................................................................................240
Dyrektywa pragma EXCEPTION_INIT..................................................................246
Zastosowanie funkcji RAISE_APPLICATION_ERROR..........................................247
Propagacja wyj4tków..................................................................................................250
Wyj4tki wywołane w sekcji wykonania...................................................................250
Wyj4tki zgłaszane w sekcji deklaracji......................................................................252
Wyj4tki zgłaszane w sekcji wyj4tków......................................................................254
Wskazówki dotycz4ce wyj4tków..................................................................................256
Zakres wyj4tków...................................................................................................256
Unikanie nieobsługiwanych wyj4tkó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 zagnie5d5one..............................................................................................272
Tablice VARRAY.................................................................................................276
Kolekcje wielopoziomowe.....................................................................................278
Porównanie pomidzy typami kolekcji....................................................................279
Kolekcje w bazie danych.............................................................................................281
Implikacje dotycz4ce 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łaciwoci jzyka 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