Wykorzystanie wbudowanego w system Oracle języka PL/SQL w znaczący sposób powiększa potencjał programisty systemów bazodanowych. PL/SQL łączy w sobie duże możliwości i elastyczność języka czwartej generacji (4GL) SQL z konstrukcjami proceduralnymi języka trzeciej generacji (3GL). 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 'Oracle8. Programowanie w języku PL/SQL' to wyczerpujące omówienie języka PL/SQL. To doskonała pozycja ułatwiająca naukę tego języka, świetnie też sprawdza się jako podręczne kompendium wiedzy o PL/SQL, pomocne w codziennej pracy. Liczne przykłady uzupełniają informacje zawarte w książce pokazując sprawdzone metody rozwiązywania problemów, napotykanych przez programistów.
W książce omówiono między innymi:
Podstawy języka PL/SQL: struktura programu, zmienne, typy, wyrażenia i operatory oraz instrukcje sterujące
Korzystanie z rekordów i tabel
Korzystanie z SQL z poziomu PL/SQL, funkcje SQL dostępne w PL/SQL
Tworzenie i używanie kursorów
Bloki w PL/SQL: podprogramy (procedury i funkcje), pakiety i wyzwalacze
Metody obsługi błędów w PL/SQL
Obiekty w PL/SQL, kolekcje
Testowanie i wykrywanie błędów
Zagadnienia zaawansowane: dynamiczny PL/SQL, komunikacja między sesjami, kolejkowanie, obsługa zadań, procedury zewnętrzne
Optymalizacja aplikacji PL/SQL i metody zapewnienia maksymalnej wydajności
Książka jest przeznaczona zarówno dla doświadczonych programistów, jak i tych, którzy jeszcze nie poznali innych języków trzeciej generacji. Przydatna, choć niekonieczna, jest ogólna znajomość systemu Oracle (łączenie się i korzystanie z bazy danych, podstawy języka SQL, itp.).
Poznaj język PL/SQL i wykorzystaj wszystkie możliwości systemu Oracle.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Oracle8.
Programowanie
w jêzyku PL/SQL
Autor: Scott Urman
T³umaczenie: Tomasz Pêdziwiatr, Grzegorz Stawikowski,
Cezary Welsyng
ISBN: 83-7197-533-3
Tytu³ orygina³u: Oracle8 PL/SQL Programming
Format: B5, stron: 762
Wykorzystanie wbudowanego w system Oracle jêzyka PL/SQL w znacz¹cy sposób
powiêksza potencja³ programisty systemów bazodanowych. PL/SQL ³¹czy w sobie du¿e
mo¿liwoġci i elastycznoġæ jêzyka czwartej generacji (4GL) SQL z konstrukcjami
proceduralnymi jêzyka trzeciej generacji (3GL). 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 „Oracle8. Programowanie w jêzyku PL/SQL” to wyczerpuj¹ce omówienie jêzyka
PL/SQL. To doskona³a pozycja u³atwiaj¹ca naukê tego jêzyka, ġwietnie te¿ sprawdza
siê jako podrêczne kompendium wiedzy o PL/SQL, pomocne w codziennej pracy.
Liczne przyk³ady uzupe³niaj¹ informacje zawarte w ksi¹¿ce pokazuj¹c sprawdzone
metody rozwi¹zywania problemów, napotykanych przez programistów.
W ksi¹¿ce omówiono miêdzy innymi:
• Podstawy jêzyka PL/SQL: struktura programu, zmienne, typy, wyra¿enia
i operatory oraz instrukcje steruj¹ce
• Korzystanie z rekordów i tabel
• Korzystanie z SQL z poziomu PL/SQL, funkcje SQL dostêpne w PL/SQL
• Tworzenie i u¿ywanie kursorów
• Bloki w PL/SQL: podprogramy (procedury i funkcje), pakiety i wyzwalacze
• Metody obs³ugi b³êdów w PL/SQL
• Obiekty w PL/SQL, kolekcje
• Testowanie i wykrywanie b³êdów
• Zagadnienia zaawansowane: dynamiczny PL/SQL, komunikacja miêdzy sesjami,
kolejkowanie, obs³uga zadañ, procedury zewnêtrzne
• Optymalizacja aplikacji PL/SQL i metody zapewnienia maksymalnej wydajnoġci
Ksi¹¿ka jest przeznaczona zarówno dla doġwiadczonych programistów, jak i tych,
którzy jeszcze nie poznali innych jêzyków trzeciej generacji. Przydatna, choæ
niekonieczna, jest ogólna znajomoġæ systemu Oracle (³¹czenie siê i korzystanie z bazy
danych, podstawy jêzyka SQL, itp.).
Spis treści
Wstęp ...................................................o................................................17
Rozdział 1. Wprowadzenie do PL/SQL...................................................o...................23
Dlaczego język PL/SQL?...................................................j...................................................j....23
Model klient-serwer...................................................j...................................................j......25
Normy ...................................................j...................................................j...........................26
Właściwości języka PL/SQL ...................................................j.................................................26
Struktura bloku ...................................................j...................................................j.............26
Zmienne i typy danych ...................................................j...................................................j.27
Konstrukcje pętlowe ...................................................j...................................................j.....28
Konwencje stosowane w niniejszej książce...................................................j...........................30
Wersje języka PL/SQL oraz bazy danych Oracle...................................................j............30
Dokumentacja Oracle ...................................................j...................................................j...31
Kod dostępny na płycie CD...................................................j.............................................32
Przykładowe tabele ...................................................j...................................................j.............32
Podsumowanie ...................................................j...................................................j....................38
Rozdział 2. Podstawy języka PL/SQL ...................................................o....................39
Blok PL/SQL........................................j...................................................j..................................39
Podstawowa struktura bloku...................................................j............................................42
Jednostki leksykalne ...................................................j...................................................j...........44
Identyfikatory ...................................................j...................................................j...............44
Ograniczniki ...................................................j...................................................j.................46
Literały...................................................j...................................................j..........................48
Komentarze...................................................j...................................................j...................49
Deklaracje zmiennych...................................................j...................................................j.........51
Składnia deklaracji...................................................j...................................................j........51
Inicjowanie zmiennych...................................................j...................................................j.52
Typy danych w języku PL/SQL...................................................j.............................................53
Typy skalarne...................................................j...................................................j................53
Typy złożone ...................................................j...................................................j................60
Typy odwołania ...................................................j...................................................j............60
Typy LOB...................................................j...................................................j.....................60
Wykorzystanie atrybutu Type ...................................................j......................................61
Podtypy definiowane przez użytkownika...................................................j........................62
Konwersja pomiędzy typami danych...................................................j...............................62
Zakres i widoczność zmiennej...................................................j.........................................64
Wyrażenia i operatory...................................................j...................................................j.........65
Przypisanie...................................................j...................................................j....................66
Wyrażenia ...................................................j...................................................j.....................67
6
Oracle8. Programowanie w języku PL/SQL
Struktury sterowania PL/SQL...................................................j................................................69
Instrukcja IF-THEN-ELSE...................................................j..............................................70
Pętle ...................................................j...................................................j..............................73
Instrukcje GOTO oraz etykiety ...................................................j.......................................77
Dyrektywy pragma ...................................................j...................................................j.......80
Styl programowania w języku PL/SQL ...................................................j.................................80
Wprowadzanie komentarzy ...................................................j.............................................81
Nazywanie zmiennych...................................................j...................................................j..82
Stosowanie dużych liter...................................................j...................................................j82
Odstępy w kodzie programu...................................................j............................................82
Ogólne uwagi dotyczące stylu programowania...................................................j...............83
Podsumowanie ...................................................j...................................................j....................83
Rozdział 3. Rekordy i tabele ...................................................o.................................85
Rekordy w języku PL/SQL ...................................................j...................................................j.85
Przypisanie rekordu ...................................................j...................................................j......86
Stosowanie operatora ROWTYPE ...................................................j...............................88
Tabele...................................................j...................................................j..................................88
Tabele a tablice ...................................................j...................................................j.............89
Atrybuty tabeli ...................................................j...................................................j..............91
Wytyczne stosowania tabel PL/SQL ...................................................j...............................94
Podsumowanie ...................................................j...................................................j....................95
Rozdział 4. SQL w PL/SQL...................................................o....................................97
Instrukcje SQL ...................................................j...................................................j....................97
Wykorzystanie instrukcji SQL w języku PL/SQL...................................................j...........98
Stosowanie instrukcji DML w języku PL/SQL ...................................................j.....................99
Instrukcja SELECT...................................................j...................................................j.....101
Instrukcja INSERT ...................................................j...................................................j.....102
Instrukcja UPDATE...................................................j...................................................j....104
Instrukcja DELETE ...................................................j...................................................j....104
Klauzula WHERE...................................................j...................................................j.......105
Odwołania do tabel ...................................................j...................................................j.....108
Powiązania bazy danych...................................................j................................................109
Synonimy...................................................j...................................................j....................110
Pseudokolumny...................................................j...................................................j.................110
Pseudokolumny CURRVAL oraz NEXTVAL...................................................j..............110
Pseudokolumna LEVEL ...................................................j................................................111
Pseudokolumna ROWID ...................................................j...............................................111
Pseudokolumna ROWNUM ...................................................j..........................................112
Instrukcje GRANT i REVOKE. Uprawnienia...................................................j.....................112
Uprawnienia obiektowe a uprawnienia systemowe...................................................j.......113
Instrukcje GRANT oraz REVOKE ...................................................j...............................113
Role...................................................j...................................................j.............................115
Sterowanie transakcjami ...................................................j...................................................j...116
Instrukcja COMMIT a instrukcja ROLLBACK...................................................j............116
Punkty zachowania ...................................................j...................................................j.....118
Transakcje a bloki...................................................j...................................................j.......119
Podsumowanie ...................................................j...................................................j..................120
Rozdział 5. Wbudowane funkcje SQL...................................................o...................121
Wstęp ...................................................j...................................................j................................121
Funkcje znakowe zwracające wartości znakowe ...................................................j.................122
CHR ...................................................j...................................................j............................122
CONCAT...................................................j...................................................j....................122
Spis treści
7
INITCAP................................................j...................................................j........................123
LOWER ...................................................j...................................................j......................123
LPAD...................................................j...................................................j..........................124
LTRIM...................................................j...................................................j........................125
NLS_INITCAP ...................................................j...................................................j...........125
NLS_LOWER...................................................j...................................................j.............126
NLS_UPPER ...................................................j...................................................j..............126
REPLACE...................................................j...................................................j...................127
RPAD...................................................j...................................................j..........................128
RTRIM...................................................j...................................................j........................128
SOUNDEX ...................................................j...................................................j.................129
SUBSTR ...................................................j...................................................j.....................130
SUBSTRB...............................................j...................................................j.......................131
TRANSLATE ...................................................j...................................................j.............131
UPPER...................................................j...................................................j........................132
Funkcje znakowe zwracające wartości liczbowe...................................................j.................133
ASCII...................................................j...................................................j..........................133
INSTR...................................................j...................................................j.........................133
INSTRB ...................................................j...................................................j......................134
LENGTH ...................................................j...................................................j....................135
LENGTHB...................................................j...................................................j..................135
NLSSORT...............................................j...................................................j.......................136
Funkcje numeryczne ...................................................j...................................................j.........136
ABS.................................................j...................................................j...............................136
ACOS...................................................j...................................................j..........................137
ASIN ...................................................j...................................................j...........................137
ATAN ...................................................j...................................................j.........................138
ATAN2 ...................................................j...................................................j.......................138
CEIL ...................................................j...................................................j...........................139
COS.................................................j...................................................j...............................139
COSH...................................................j...................................................j..........................140
EXP...................................................j...................................................j.............................140
FLOOR ...................................................j...................................................j.......................140
LN ...................................................j...................................................j...............................141
LOG ...................................................j...................................................j............................141
MOD ...................................................j...................................................j...........................142
POWER ...................................................j...................................................j......................142
ROUND ...................................................j...................................................j......................143
SIGN ...................................................j...................................................j...........................143
SIN...................................................j...................................................j..............................144
SINH ...................................................j...................................................j...........................144
SQRT ...................................................j...................................................j..........................144
TAN ...................................................j...................................................j............................145
TANH ...................................................j...................................................j.........................145
TRUNC...................................................j...................................................j.......................146
Funkcje związane z datą ...................................................j...................................................j...146
ADD_MONTHS...................................................j...................................................j.........146
LAST_DAY...................................................j...................................................j................147
MONTHS_BETWEEN ...................................................j.................................................147
NEW_TIME ...................................................j...................................................j...............148
NEXT_DAY ...................................................j...................................................j...............149
ROUND ...................................................j...................................................j......................149
SYSDATE ...................................................j...................................................j..................150
TRUNC...................................................j...................................................j.......................151
8
Oracle8. Programowanie w języku PL/SQL
Funkcje dokonujące konwersji...................................................j.............................................152
CHARTOROWID ...................................................j...................................................j......152
CONVERT ...................................................j...................................................j.................153
HEXTORAW ...................................................j...................................................j.............153
RAWTOHEX ...................................................j...................................................j.............154
ROWIDTOCHAR ...................................................j...................................................j......154
TO_CHAR(daty) ...................................................j...................................................j........155
TO_CHAR(etykiety) ...................................................j...................................................j..155
TO_CHAR(liczba)...................................................j...................................................j......157
TO_DATE ...................................................j...................................................j..................159
TO_LABEL ...................................................j...................................................j................159
TO_MULTI_BYTE...................................................j...................................................j....160
TO_NUMBER...................................................j...................................................j............160
TO_SINGLE_BYTE ...................................................j...................................................j..161
Funkcje grupowe...................................................j...................................................j...............161
AVG...................................................j...................................................j............................161
COUNT.................................................j...................................................j.........................162
GLB ...................................................j...................................................j............................163
LUB ...................................................j...................................................j............................163
MAX ...................................................j...................................................j...........................163
MIN.................................................j...................................................j...............................164
STDDEV...............................................j...................................................j.........................164
SUM...................................................j...................................................j............................165
VARIANCE...................................................j...................................................j................165
Inne funkcje.........................................j...................................................j.................................166
BFILENAME ...................................................j...................................................j.............166
DECODE ...................................................j...................................................j....................166
DUMP...................................................j...................................................j.........................167
EMPTY_CLOB/EMPTY_BLOB...................................................j..................................169
GREATEST...................................................j...................................................j................169
GREATEST_LB...................................................j...................................................j.........170
LEAST...................................................j...................................................j........................170
LEAST_UB ...................................................j...................................................j................170
NVL ...................................................j...................................................j............................171
UID ...................................................j...................................................j.............................171
USER ...................................................j...................................................j..........................172
USERENV...................................................j...................................................j..................172
VSIZE ...................................................j...................................................j.........................173
PL/SQL w działaniu. Drukowanie liczb w postaci tekstowej.................................................174
Podsumowanie ...................................................j...................................................j..................180
Rozdział 6. Kursory ...................................................o............................................181
Czym jest kursor?....................................j...................................................j.............................181
Przetwarzanie kursorów jawnych ...................................................j..................................182
Przetwarzanie kursorów niejawnych ...................................................j.............................189
Pętle pobierania danych kursora ...................................................j..........................................191
Pętle proste...................................................j...................................................j..................191
Pętle WHILE ...................................................j...................................................j..............193
Pętle FOR kursora...................................................j...................................................j.......194
Wyjątek NO_DATA_FOUND kontra atrybut NOTFOUND .......................................195
Kursory z klauzulą FOR UPDATE instrukcji SELECT...................................................j196
Zmienne kursora ...................................................j...................................................j...............199
Deklaracja zmiennej kursora ...................................................j.........................................200
Przydzielenie obszaru pamięci dla zmiennych kursora ...................................................j.201
Otwieranie zmiennej kursora dla zapytania...................................................j...................202
Spis treści
9
Zamykanie zmiennych kursora...................................................j......................................203
Pierwszy przykład zmiennej kursora ...................................................j.............................203
Drugi przykład zmiennej kursora ...................................................j..................................205
Ograniczenia użycia zmiennych kursora ...................................................j.......................206
Podsumowanie ...................................................j...................................................j..................207
Rozdział 7. Podprogramy: procedury i funkcje ...................................................o.....209
Tworzenie procedur i funkcji...................................................j...............................................209
Tworzenie procedury ...................................................j...................................................j..210
Tworzenie funkcji...................................................j...................................................j.......221
Wyjątki wywoływane wewnątrz podprogramów ...................................................j..........224
Usuwanie procedur i funkcji...................................................j..........................................226
Położenie podprogramów ...................................................j...................................................j.226
Składowane podprogramy oraz słownik danych ...................................................j...........226
Podprogramy lokalne...................................................j...................................................j..228
Zależności dotyczące podprogramów...................................................j..................................231
Określanie zależności ...................................................j...................................................j.233
Uprawnienia i podprogramy składowane ...................................................j............................236
Uprawnienie EXECUTE ...................................................j...............................................236
Składowane podprogramy i role...................................................j....................................237
Podsumowanie ...................................................j...................................................j..................239
Rozdział 8. Pakiety ...................................................o............................................241
Pakiety...................................................j...................................................j...............................241
Specyfikacja pakietu...................................................j...................................................j...241
Ciało pakietu...................................................j...................................................j...............243
Pakiety i zakres ...................................................j...................................................j...........245
Przeciążenie podprogramów pakietowych ...................................................j....................246
Inicjalizacja pakietu ...................................................j...................................................j....247
Pakiety i zależności...................................................j...................................................j.....249
Stosowanie składowanych funkcji w instrukcjach SQL ...................................................j......251
Poziomy czystości ...................................................j...................................................j......252
Parametry domyślne ...................................................j...................................................j...256
PL/SQL w działaniu — Eksporter schematów PL/SQL...................................................j......256
Podsumowanie ...................................................j...................................................j..................264
Rozdział 9. Wyzwalacze...................................................o......................................265
Tworzenie wyzwalaczy...................................................j...................................................j.....265
Komponenty wyzwalacza...................................................j..............................................267
Wyzwalacze i słownik danych...................................................j.......................................270
Kolejność uruchamiania wyzwalaczy...................................................j............................272
Stosowanie wartości :old oraz :new w wyzwalaczach na poziomie wiersza ...................273
Korzystanie z predykatów wyzwalacza: INSERTING, UPDATING oraz DELETING.....276
Tabele mutujące ...................................................j...................................................j................278
Przykład tabeli mutującej ...................................................j..............................................280
Rozwiązanie problemu błędu tabeli mutującej...................................................j..............281
PL/SQL w działaniu — wdrażanie techniki kaskadowego uaktualniania ..............................283
Program narzędziowy kaskadowego uaktualniania...................................................j.......285
Działanie pakietu kaskadowego uaktualniania...................................................j..............288
Podsumowanie ...................................................j...................................................j..................292
Rozdział 10. Obsługa błędów ...................................................o................................293
Zdefiniowanie wyjątku ...................................................j...................................................j.....293
Deklarowanie wyjątków ...................................................j................................................295
Wywoływanie wyjątków ...................................................j...............................................298
Obsługa wyjątków ...................................................j...................................................j......299
10
Oracle8. Programowanie w języku PL/SQL
Dyrektywa pragma EXCEPTION_INIT ...................................................j.......................305
Stosowanie funkcji RAISE_APPLICATION_ERROR ...................................................j305
Propagacja wyjątków ...................................................j...................................................j........308
Wyjątki wywołane w sekcji wykonania ...................................................j........................308
Wyjątki wywołane w sekcji deklaracji ...................................................j..........................310
Wyjątki wywołane w sekcji wyjątków ...................................................j..........................312
Wytyczne wyjątków...................................................j...................................................j..........314
Zakres wyjątków...................................................j...................................................j.........314
Unikanie nieobsługiwanych wyjątków...................................................j..........................315
Maskowanie lokalizacji błędu ...................................................j.......................................315
PL/SQL w działaniu — ogólny program obsługi błędów...................................................j....316
Podsumowanie ...................................................j...................................................j..................324
Rozdział 11. Obiekty ...................................................o............................................325
Wprowadzenie ...................................................j...................................................j..................325
Podstawy programowania obiektowego ...................................................j........................325
Obiektowo-relacyjne bazy danych ...................................................j................................327
Typy obiektów ...................................................j...................................................j..................328
Definiowanie typów obiektowych...................................................j.................................328
Deklarowanie i inicjalizacja obiektów...................................................j...........................330
Metody...................................................j...................................................j........................332
Zmiana i usuwanie typów...................................................j..............................................338
Zależności między obiektami ...................................................j........................................340
Obiekty w bazie danych...................................................j...................................................j....340
Położenie obiektów...................................................j...................................................j.....341
Obiekty w instrukcjach DML ...................................................j........................................344
Metody MAP i ORDER...................................................j.................................................349
Podsumowanie ...................................................j...................................................j..................351
Rozdział 12. Kolekcje...................................................o...........................................353
Tabele zagnieżdżone ...................................................j...................................................j.........353
Deklarowanie tabeli zagnieżdżonej ...................................................j...............................353
Zagnieżdżone tabele w bazie danych ...................................................j............................356
Tabele zagnieżdżone a tabele indeksowe ...................................................j......................361
Tablice o zmiennym rozmiarze...................................................j............................................361
Deklarowanie tablicy o zmiennym rozmiarze ...................................................j...............362
Tablice o zmiennym rozmiarze w bazie danych...................................................j............363
Tablice o zmiennym rozmiarze a tabele zagnieżdżone ...................................................j.365
Metody dla kolekcji ...................................................j...................................................j..........366
EXISTS...................................................j...................................................j.......................366
COUNT.................................................j...................................................j.........................367
LIMIT ...................................................j...................................................j.........................368
FIRST i LAST ...................................................j...................................................j............368
NEXT i PRIOR...................................................j...................................................j...........369
EXTEND ...................................................j...................................................j....................369
TRIM ...................................................j...................................................j..........................371
DELETE ...................................................j...................................................j.....................373
Podsumowanie ...................................................j...................................................j..................374
Rozdział 13. Środowiska wykonawcze PL/SQL ...................................................o......375
Różne mechanizmy języka PL/SQL ...................................................j....................................375
Implikacje umieszczenia mechanizmu PL/SQL po stronie klienta ..................................377
Mechanizm PL/SQL po stronie serwera ...................................................j..............................378
Program SQL*Plus ...................................................j...................................................j.....378
Prekompilatory Oracle...................................................j...................................................j383
Spis treści
11
OCI ...................................................j...................................................j.............................389
Program SQL-Station ...................................................j...................................................j.392
Mechanizm PL/SQL po stronie klienta...................................................j................................396
Przyczyny wykorzystywania mechanizmu PL/SQL po stronie klienta............................396
Program Oracle Forms...................................................j...................................................j397
Program Procedure Builder ...................................................j...........................................399
Wrapper PL/SQL ...................................................j...................................................j..............401
Wykonanie wrappera ...................................................j...................................................j..401
Pliki wejścia i wyjścia ...................................................j...................................................j402
Sprawdzanie syntaktyki i semantyki ...................................................j.............................402
Wytyczne dla programu wrapper...................................................j...................................403
Podsumowanie ...................................................j...................................................j..................403
Rozdział 14. Testowanie i wykrywanie błędów...................................................o.......405
Diagnostyka problemu ...................................................j...................................................j......405
Wytyczne wykrywania i usuwania błędów ...................................................j...................405
Pakiet Debug służący do wykrywania i usuwania błędów...............................................407
Wstawianie do tabeli testowania...................................................j..........................................407
Problem 1...................................................j...................................................j....................407
Pakiet DBMS_OUTPUT ...................................................j...................................................j..415
Składniki pakietu DBMS_OUTPUT ...................................................j.............................416
Problem 2...................................................j...................................................j....................420
Programy PL/SQL służące do wykrywania i usuwania błędów .............................................426
Program Procedure Builder...................................................j..................................................426
Problem 3...................................................j...................................................j....................426
Program SQL-Station...................................................j...................................................j........432
Problem 4...................................................j...................................................j....................433
Porównanie programów Procedure Builder i SQL-Station...................................................j..437
Metodyka programowania ...................................................j...................................................j438
Programowanie modularne...................................................j............................................438
Projektowanie zstępujące...................................................j...............................................439
Abstrakcja danych ...................................................j...................................................j......440
Podsumowanie ...................................................j...................................................j..................440
Rozdział 15. Dynamiczny PL/SQL ...................................................o.........................441
Wprowadzenie ...................................................j...................................................j..................441
Instrukcje SQL statyczne a instrukcje dynamiczne ...................................................j.......441
Ogólny opis pakietu DBMS_SQL ...................................................j.................................442
Wykonywanie instrukcji DML oraz DDL nie będących zapytaniami....................................446
Otwieranie kursora...................................................j...................................................j......447
Parsowanie instrukcji...................................................j...................................................j..447
Wiązanie każdej zmiennej wejściowej ...................................................j..........................448
Wykonanie instrukcji...................................................j...................................................j..450
Zamykanie kursora ...................................................j...................................................j.....450
Przykład ...................................................j...................................................j......................451
Wykonywanie instrukcji DDL...................................................j.......................................452
Wykonywanie zapytań...................................................j...................................................j453
Parsowanie instrukcji...................................................j...................................................j..454
Zdefiniowanie zmiennych wyjściowych ...................................................j.......................454
Pobieranie wierszy...................................................j...................................................j......456
Zwracanie wyników do zmiennych PL/SQL...................................................j.................456
Przykład ...................................................j...................................................j......................458
Wykonywanie bloku PL/SQL...................................................j..............................................461
Parsowanie instrukcji...................................................j...................................................j..461
Pobranie wartości każdej zmiennej wyjściowej ...................................................j............462
12
Oracle8. Programowanie w języku PL/SQL
Przykład ...................................................j...................................................j......................463
Zastosowanie parametru out_value_size ...................................................j.......................465
PL/SQL w działaniu — wykonywanie dowolnych procedur składowanych .........................466
Udoskonalenia pakietu DBMS_SQL w wydaniu PL/SQL 8.0...............................................472
Parsowanie dużych ciągów znaków instrukcji SQL...................................................j......473
Przetwarzanie tablicowe za pomocą pakietu DBMS_SQL ..............................................474
Opisywanie listy instrukcji SELECT...................................................j.............................478
Różne procedury ...................................................j...................................................j...............481
Pobieranie danych typu LONG ...................................................j.....................................481
Dodatkowe funkcje obsługi błędów ...................................................j..............................482
PL/SQL w działaniu — zapisywanie wartości typu LONG do pliku .....................................484
Uprawnienia a pakiet DBMS_SQL...................................................j......................................486
Uprawnienia wymagane dla pakietu DBMS_SQL...................................................j........486
Role a pakiet DBMS_SQL ...................................................j............................................487
Porównanie pakietu DBMS_SQL z innymi metodami przetwarzania dynamicznego ...........487
Opisywanie listy instrukcji SELECT...................................................j.............................488
Przetwarzanie tablicowe ...................................................j................................................488
Operacje dzielenia na części danych typu LONG ...................................................j.........488
Różnice interfejsów ...................................................j...................................................j....489
Wskazówki i techniki...................................................j...................................................j........489
Ponowne zastosowanie kursorów ...................................................j..................................489
Zezwolenia...................................................j...................................................j..................489
Zawieszenia programu związane z operacjami DDL ...................................................j....490
Podsumowanie ...................................................j...................................................j..................490
Rozdział 16. Komunikacja między sesjami...................................................o.............491
Pakiet DBMS_PIPE ...................................................j...................................................j..........491
Wysyłanie komunikatu ...................................................j..................................................495
Odbieranie komunikatu ...................................................j.................................................496
Tworzenie potoków i zarządzanie nimi...................................................j.........................498
Uprawnienia i bezpieczeństwo ...................................................j......................................500
Ustanawianie protokołu komunikacji ...................................................j............................501
Przykład ...................................................j...................................................j......................503
Pakiet DBMS_ALERT ...................................................j...................................................j.....509
Wysyłanie ostrzeżenia ...................................................j...................................................j509
Odbieranie ostrzeżenia...................................................j...................................................j509
Inne procedury ...................................................j...................................................j............511
Ostrzeżenia i słownik danych ...................................................j........................................512
Porównanie pakietów DBMS_PIPE i DBMS_ALERT...................................................j.......514
Podsumowanie ...................................................j...................................................j..................515
Rozdział 17. Zaawansowane kolejkowanie w Oracle.................................................517
Wprowadzenie ...................................................j...................................................j..................517
Elementy systemu zaawansowanego kolejkowania ...................................................j......518
Realizacja zaawansowanego kolejkowania ...................................................j...................520
Operacje na kolejkach...................................................j...................................................j.......520
Typy pomocnicze...................................................j...................................................j........521
Operacja ENQUEUE ...................................................j...................................................j..525
Operacja DEQUEUE ...................................................j...................................................j..526
Administrowanie kolejką ...................................................j...................................................j..526
Podprogramy pakietu DBMS_AQADM ...................................................j.......................526
Uprawnienia do kolejek...................................................j.................................................533
Kolejki i słownik danych ...................................................j...............................................533
Przykłady ...................................................j...................................................j..........................536
Tworzenie kolejek i tabel kolejek...................................................j..................................536
Proste wstawianie i odbieranie komunikatów ...................................................j...............538
Spis treści
13
„Czyszczenie” kolejek ...................................................j...................................................j539
Wstawianie i odbieranie komunikatów z uwzględnieniem priorytetów...........................540
Wstawianie i odbieranie komunikatów z wykorzystaniem idjentyfikatora
korelacji lub identyfikatora komunikatu ...................................................j.................542
Przeglądanie kolejek...................................................j...................................................j...544
Stosowanie kolejek wyjątków ...................................................j.......................................546
Usuwanie kolejek...................................................j...................................................j........548
Podsumowanie ...................................................j...................................................j..................549
Rozdział 18. Obsługa zadań i plików w bazie danych ................................................551
Zadania w bazie danych...................................................j...................................................j....551
Procesy drugoplanowe...................................................j...................................................j551
Uruchamianie zadania ...................................................j...................................................j552
Zadania niewykonane ...................................................j...................................................j.556
Usuwanie zadania ...................................................j...................................................j.......557
Dokonywanie zmian w zadaniu...................................................j.....................................557
Przeglądanie zadań w słowniku danych ...................................................j........................558
Warunki wykonywania zadań...................................................j........................................558
Obsługa plików ...................................................j...................................................j.................558
Zabezpieczenia ...................................................j...................................................j...........559
Wyjątki w pakiecie UTL_FILE ...................................................j.....................................560
Otwieranie i zamykanie plików ...................................................j.....................................561
Zapis do pliku ...................................................j...................................................j.............563
Odczyt z pliku...................................................j...................................................j.............566
Przykłady ...................................................j...................................................j....................566
Podsumowanie ...................................................j...................................................j..................573
Rozdział 19. Serwer WWW Oracle...................................................o.........................575
Środowisko serwera WWW Oracle ...................................................j.....................................575
Agent PL/SQL ...................................................j...................................................j............577
Określanie wartości parametrów w procedurach...................................................j...........578
Narzędzia WWW w PL/SQL...................................................j...............................................580
Pakiety HTP i HTF ...................................................j...................................................j.....580
Pakiet OWA_UTIL...................................................j...................................................j.....594
Pakiet OWA_IMAGE...................................................j...................................................j.601
Pakiet OWA_COOKIE...................................................j..................................................604
Tworzenie procedur OWA...................................................j...................................................j607
Procedura OWA_UTIL.SHOWPAGE ...................................................j..........................607
SQL-Station ...................................................j...................................................j................608
Podsumowanie ...................................................j...................................................j..................608
Rozdział 20. Procedury zewnętrzne ...................................................o.......................609
Czym jest procedura zewnętrzna?...................................................j........................................609
Wywoływanie procedury zewnętrznej ...................................................j..........................610
Odwzorowywanie parametrów...................................................j......................................617
Funkcje i procedury zewnętrzne w pakietach...................................................j................624
Połączenie zwrotne z bazą danych...................................................j.......................................626
Podprogramy usługowe ...................................................j.................................................626
Wykonywanie instrukcji SQL w procedurze zewnętrznej ...............................................629
Wskazówki, wytyczne i ograniczenia...................................................j..................................630
Wykrywanie błędów w procedurach zewnętrznych ...................................................j......630
Wytyczne ...................................................j...................................................j....................632
Ograniczenia ...................................................j...................................................j...............633
Podsumowanie ...................................................j...................................................j..................634
14
Oracle8. Programowanie w języku PL/SQL
Rozdział 21. Duże obiekty ...................................................o....................................635
Czym są duże obiekty? ...................................................j...................................................j.....635
Składowanie dużych obiektów ...................................................j......................................636
Duże obiekty w instrukcjach DML...................................................j................................637
Obiekty typu BFILE......................................j...................................................j.......................639
Katalogi...................................................j...................................................j.......................639
Otwieranie i zamykanie plików BFILE...................................................j.........................641
Pliki BFILE w instrukcjach DML ...................................................j.................................641
Pakiet DBMS_LOB ...................................................j...................................................j..........643
Podprogramy pakietu DBMS_LOB ...................................................j..............................643
Wyjątki zgłaszane przez podprogramy z pakietu DBMS_LOB.......................................658
Porównanie interfejsów DBMS_LOB i OCI...................................................j.................658
PL/SQL w działaniu: Kopiowanie danych typu LONG do postaci LOB ...............................659
Podsumowanie ...................................................j...................................................j..................661
Rozdział 22. Wydajność i strojenie ...................................................o.......................663
Obszar wspólny...................................................j...................................................j.................663
Struktura instancji bazy Oracle...................................................j......................................663
Jak funkcjonuje obszar wspólny? ...................................................j..................................667
Rozmiar obszaru wspólnego...................................................j..........................................669
Unieruchamianie obiektów...................................................j............................................670
Strojenie instrukcji SQL...........................j...................................................j............................672
Generowanie planu wykonania...................................................j......................................672
Wykorzystywanie planu ...................................................j................................................678
Sieć...................................................j...................................................j....................................679
Wykorzystywanie środowiska PL/SQL po stronie klienta...............................................679
Unikanie powtórnej analizy składni ...................................................j..............................679
Przetwarzanie tablicowe ...................................................j................................................680
Podsumowanie ...................................................j...................................................j..................680
Dodatek A Słowa zastrzeżone w PL/SQL ...................................................o............681
Dodatek B Pakiety dostępne w PL/SQL ...................................................o.............683
Tworzenie pakietów...................................................j..............................................
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Oracle8. Programowanie w języku PL/SQL
Autor: Scott Urman
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :