Oracle_Database_10g_Programowanie_w_jezyku_PL_SQL_or10ps.pdf

(507 KB) Pobierz
Oracle Database 10g.
Programowanie
w jêzyku PL/SQL
Autor: Scott Urman, Ron Hardman, Michael McLaughlin
T³umaczenie: Tomasz Walczak
ISBN: 978-83-246-1207-9
Tytu³ orygina³u:
Oracle Database
10g PL/SQL Programming
Format: B5, stron: 752
Wykorzystaj mo¿liwoœci programowania w PL/SQL,
aby tworzyæ wyj¹tkowe, zaawansowane bazy danych
Jak zarz¹dzaæ zbiorami danych za pomoc¹ rekordów i obiektów jêzyka PL/SQL?
Jak komunikowaæ siê z bazami danych Oracle?
Jak u¿ywaæ zapytañ hierarchicznych, wyra¿eñ regularnych i mechanizmów
Oracle Text do pobierania informacji?
Tworzenie baz danych i zarz¹dzanie nimi wymaga nie tylko umiejêtnoœci technicznych
i dyscypliny, ale równie¿ pomys³owoœci, wyobraŸni i – co najwa¿niejsze – odpowiednich
narzêdzi. Zatem w³aœciwym wyborem bêdzie Oracle – elastyczny system zarz¹dzania
relacyjnymi bazami danych o niezwykle du¿ych mo¿liwoœciach. Pozwala na tworzenie
i administrowanie zaawansowanymi aplikacjami przy u¿yciu jêzyka PL/SQL, który s³u¿y
do pobierania, wstawiania, aktualizowania i usuwania danych, a tak¿e tworzenia
i przechowywania obiektów, u¿ytkowników oraz kontrolowania praw dostêpu do danych.
Ksi¹¿ka
„Oracle
10g. Programowanie w jêzyku PL/SQL” zawiera materia³ zarówno dla
pocz¹tkuj¹cych, jak i zaawansowanych u¿ytkowników. Przedstawiono w niej nie tylko
podstawowe elementy jêzyka (strukturê bloku, bloki anonimowe i nazwane, komunikaty
o b³êdach i inne), ale tak¿e u³o¿ony wed³ug wersji spis g³ównych rozszerzeñ. Korzystaj¹c
z tego podrêcznika, nauczysz siê, jak system przetwarza transakcje i zobaczysz, jak
dzia³a baza danych na zapleczu. Dowiesz siê, jak pisaæ wyzwalacze i u¿ywaæ ich do
zarz¹dzania lokalnymi oraz zdalnymi egzemplarzami bazy. Dodatkowo poznasz sztuczki
programistyczne i praktyczne przyk³ady technik stosowanych w pracy z Oracle.
U¿ywanie jêzyka SQL w PL/SQL
Konfigurowanie transakcji
Rodzaje kursorów i ich dzia³anie
Korzystanie z rekordów i kolekcji
U¿ywanie narzêdzi SQL*Plus i Developer
Tworzenie procedur, funkcji i pakietów
Obs³uga b³êdów
Wyzwalacze w bazach danych
Komunikacja miêdzy sesjami
Procedury zewnêtrzne
Obiekty w bazach danych
Szeregowanie zadañ
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
W jednej ksi¹¿ce otrzymujesz wiêc wszystko, czego potrzeba,
aby tworzyæ zaawansowane bazy danych i profesjonalnie nimi zarz¹dzaæ!
Spis treści
O autorach ............................................................................................... 13
O redaktorze technicznym ........................................................................ 15
Wprowadzenie .......................................................................................... 17
Część I
Wprowadzenie ...................................................................... 23
Wprowadzenie do języków programowania ................................................................................26
Wskazówki dla początkujących programistów ......................................................................26
PL/Co? .........................................................................................................................................27
Język SQL .............................................................................................................................28
Przegląd relacyjnych baz danych ..........................................................................................28
PL/SQL a SQL ......................................................................................................................30
PL/SQL a Java .......................................................................................................................32
Historia i możliwości języka PL/SQL ...................................................................................33
Podstawy języka ..........................................................................................................................35
Bloki anonimowe ..................................................................................................................35
Procedury ..............................................................................................................................36
Funkcje ..................................................................................................................................36
Pakiety ...................................................................................................................................36
Typy obiektowe .....................................................................................................................37
Przetwarzanie instrukcji PL/SQL ................................................................................................37
Tryb interpretowany ..............................................................................................................37
Kompilacja do języka macierzystego ....................................................................................38
Jak najlepiej wykorzystać tę książkę? ..........................................................................................38
Odbiorcy ................................................................................................................................38
Cel .........................................................................................................................................38
Zakres ....................................................................................................................................39
Założenia ...............................................................................................................................39
Konwencje ............................................................................................................................40
Przykłady ..............................................................................................................................40
Podsumowanie .............................................................................................................................41
Rozdział 1. Wprowadzenie do języka PL/SQL .............................................................. 25
6
Oracle Database 10g. Programowanie w języku PL/SQL
Rozdział 2. Używanie narzędzi SQL*Plus i JDeveloper .................................................. 43
SQL*Plus .....................................................................................................................................44
Łączenie
się z egzemplarzem bazy danych ...........................................................................44
Testowanie połączenia ..........................................................................................................45
Korzystanie z SQL*Plus .......................................................................................................47
Zmienianie ustawień sesji w SQL*Plus ................................................................................49
Uruchamianie skryptów z plików ..........................................................................................50
Wyświetlanie danych na ekranie za pomocą SQL*Plus i PL/SQL ........................................51
JDeveloper ...................................................................................................................................52
Instalowanie JDeveloper .......................................................................................................52
Używanie języka PL/SQL w JDeveloper ..............................................................................54
Podsumowanie .............................................................................................................................59
Rozdział 3. Podstawy języka PL/SQL .......................................................................... 61
Bloki w PL/SQL ..........................................................................................................................61
Podstawowa struktura ............................................................................................................62
Bloki anonimowe ..................................................................................................................64
Bloki nazwane .......................................................................................................................67
Bloki zagnieżdżone ...............................................................................................................75
Wyzwalacze ..........................................................................................................................76
Typy obiektowe .....................................................................................................................77
Zasady i konwencje języka ..........................................................................................................77
Jednostki leksykalne ..............................................................................................................77
Typy danych języka PL/SQL .......................................................................................................88
Typy skalarne ........................................................................................................................88
Znaki i
łańcuchy
znaków .......................................................................................................89
Typ danych NUMBER ..........................................................................................................90
Wartości logiczne ..................................................................................................................93
Data i czas .............................................................................................................................94
Typy złożone .........................................................................................................................96
Referencje .............................................................................................................................97
LOB .......................................................................................................................................98
Używanie zmiennych ..................................................................................................................98
%TYPE .................................................................................................................................99
%ROWTYPE ........................................................................................................................99
Zasięg zmiennych ................................................................................................................100
Wiązanie zmiennych ...........................................................................................................102
Ukrywanie kodu ........................................................................................................................105
Wyrażenia ..................................................................................................................................107
Operator przypisania ...........................................................................................................108
Operator
łączenia
.................................................................................................................109
Kontrolowanie przepływu programu .........................................................................................110
Wykonywanie warunkowe ..................................................................................................110
Wykonywanie kodu w pętli .................................................................................................116
Nawigacja sekwencyjna za pomocą instrukcji GOTO ........................................................119
Podsumowanie ...........................................................................................................................120
Rozdział 4. Używanie języka SQL w PL/SQL .............................................................. 121
Przetwarzanie transakcji ............................................................................................................121
Transakcje i blokowanie ......................................................................................................122
Transakcje autonomiczne ....................................................................................................127
Konfigurowanie transakcji ..................................................................................................130
Pobieranie danych .....................................................................................................................131
Instrukcja SELECT języka SQL ..........................................................................................131
Dopasowywanie wzorców ...................................................................................................134
Pobieranie informacji ..........................................................................................................138
Spis treści
7
Kursory ......................................................................................................................................141
Jak działają kursory? ...........................................................................................................142
Kursory bezpośrednie ..........................................................................................................144
Kursory pośrednie ...............................................................................................................151
Zmienne kursorowe .............................................................................................................152
Podzapytania kursorowe ......................................................................................................153
Otwarte kursory ...................................................................................................................154
DML i DDL ...............................................................................................................................155
Wstępna kompilacja ............................................................................................................156
Manipulowanie danymi za pomocą poleceń DML ..............................................................156
Wprowadzenie do dynamicznego języka SQL ....................................................................160
Używanie ROWID i ROWNUM ...............................................................................................161
ROWID ...............................................................................................................................161
ROWNUM ..........................................................................................................................164
Wbudowane funkcje języka SQL ..............................................................................................167
Funkcje znakowe .................................................................................................................167
Funkcje liczbowe .................................................................................................................168
Funkcje do obsługi dat ........................................................................................................168
Funkcje do konwersji ..........................................................................................................169
Funkcje do obsługi błędów ..................................................................................................170
Inne funkcje .........................................................................................................................171
Podsumowanie ...........................................................................................................................172
Rozdział 5. Rekordy ................................................................................................. 173
Wprowadzenie do rekordów ......................................................................................................173
Czym jest rekord? ................................................................................................................173
Korzystanie z rekordów .......................................................................................................174
Definiowanie typów rekordowych ......................................................................................175
Definiowanie i używanie typów rekordowych jako parametrów formalnych .....................186
Definiowanie typów obiektowych i używanie ich jako parametrów ...................................190
Zwracanie typów rekordowych przez funkcje .....................................................................192
Definiowanie i używanie typów rekordowych jako zwracanych wartości ..........................192
Definiowanie i używanie typów obiektowych jako zwracanych wartości ...........................194
Testowanie operacji na typach rekordowych .......................................................................197
Podsumowanie ...........................................................................................................................198
Rozdział 6. Kolekcje ................................................................................................ 199
Wprowadzenie do kolekcji ........................................................................................................199
Czym są kolekcje? ...............................................................................................................200
Korzystanie z kolekcji ...............................................................................................................200
Korzystanie z tablic VARRAY ...........................................................................................202
Używanie tabel zagnieżdżonych .........................................................................................219
Używanie tablic asocjacyjnych ...........................................................................................240
API Collection w Oracle 10g .....................................................................................................257
Metoda COUNT ..................................................................................................................260
Metoda DELETE .................................................................................................................261
Metoda EXISTS ..................................................................................................................263
Metoda EXTEND ................................................................................................................265
Metoda FIRST .....................................................................................................................267
Metoda LAST ......................................................................................................................269
Metoda LIMIT ....................................................................................................................269
Metoda NEXT .....................................................................................................................271
Metoda PRIOR ....................................................................................................................271
Metoda TRIM ......................................................................................................................271
Podsumowanie ...........................................................................................................................274
8
Oracle Database 10g. Programowanie w języku PL/SQL
Rozdział 7. Obsługa błędów ...................................................................................... 275
Czym jest wyjątek? ....................................................................................................................275
Deklarowanie wyjątków ......................................................................................................277
Zgłaszanie wyjątków ...........................................................................................................278
Obsługa wyjątków ...............................................................................................................280
Dyrektywa EXCEPTION_INIT ..........................................................................................287
Używanie funkcji RAISE_APPLICATION_ERROR .........................................................287
Przekazywanie wyjątków ..........................................................................................................291
Zgłaszanie wyjątków w sekcji wykonawczej ......................................................................291
Wyjątki zgłaszane w sekcji deklaracji .................................................................................293
Wyjątki zgłaszane w sekcji wyjątków .................................................................................294
Porady dotyczące wyjątków ......................................................................................................296
Zasięg wyjątków .................................................................................................................297
Unikanie nieobsłużonych wyjątków ....................................................................................298
Określanie lokalizacji wyjątku ............................................................................................298
Wyjątki i transakcje .............................................................................................................299
Podsumowanie ...........................................................................................................................301
Rozdział 8. Tworzenie procedur, funkcji i pakietów .................................................... 303
Procedury i funkcje ....................................................................................................................303
Tworzenie podprogramów ...................................................................................................304
Parametry podprogramów ...................................................................................................309
Instrukcja CALL .................................................................................................................326
Procedury a funkcje .............................................................................................................328
Pakiety .......................................................................................................................................329
Specyfikacja pakietu ...........................................................................................................329
Ciało pakietu .......................................................................................................................330
Pakiety i zasięg ....................................................................................................................332
Przeciążanie podprogramów z pakietów .............................................................................334
Inicjowanie pakietów ..........................................................................................................338
Podsumowanie ...........................................................................................................................340
Rozdział 9. Używanie procedur, funkcji i pakietów .................................................... 341
Lokalizacja podprogramów .......................................................................................................341
Podprogramy składowane i słownik danych .......................................................................341
Podprogramy lokalne ..........................................................................................................344
Podprogramy składowane a podprogramy lokalne ..............................................................350
Zagadnienia dotyczące podprogramów składowanych i pakietów ............................................351
Zależności podprogramów ..................................................................................................351
Stan pakietów w czasie wykonywania programu ................................................................361
Uprawnienia i podprogramy składowane ............................................................................366
Funkcje składowane i instrukcje języka SQL ............................................................................375
Funkcje zwracające jedną wartość ......................................................................................375
Funkcje zwracające wiele wartości .....................................................................................384
Kompilacja do kodu macierzystego ...........................................................................................387
Przytwierdzanie w obszarze wspólnym .....................................................................................388
Procedura KEEP ..................................................................................................................388
Procedura UNKEEP ............................................................................................................389
Procedura SIZES .................................................................................................................389
Procedura ABORTED_REQUEST_THRESHOLD ............................................................389
Nakładki języka PL/SQL .....................................................................................................390
Podsumowanie ...........................................................................................................................390
Zgłoś jeśli naruszono regulamin