Oracle Database 12c. Programowanie w języku PL/SQL - ebook
Oracle Database 12c. Programowanie w języku PL/SQL - ebook
Projektuj i wdrażaj rozbudowane aplikacje bazodanowe w języku PL/SQL
Oracle to jedna z najlepszych baz danych. Najczęściej korzystają z niej firmy i instytucje. W jej tabelach przechowywane są gigantyczne ilości danych, przetwarzane każdego dnia w celu wyłuskania kluczowych informacji. Wykonywanie operacji na danych bezpośrednio w bazie jest możliwe dzięki rozszerzeniu języka SQL, które pozwala na tworzenie konstrukcji znanych z innych języków programowania. To właśnie PL/SQL!Jeżeli sięgniesz po tę książkę, będziesz mieć niepowtarzalną okazję błyskawicznego poznania jego potencjału. Na kolejnych stronach znajdziesz informacje na temat podstaw pracy z PL/SQL, a następnie przejdziesz do bardziej zaawansowanych zagadnień. Zdobędziesz wiedzę na temat struktur sterujących, kolekcji oraz pracy z dużymi obiektami. Ponadto nauczysz się obsługiwać błędy oraz budować wyzwalacze. Książka ta jest doskonałą lekturą dla osób chcących poznać możliwości języka PL/SQL!
- Poznaj nowe mechanizmy języków SQL i PL/SQL z bazy Oracle Database 12c
- Twórz struktury kontrolne, kursory i pętle
- Stosuj kolekcje: tablice VARRAY, tabele zagnieżdżone i tablice asocjacyjne
- Wyszukuj i naprawiaj błędy oraz stosuj bloki obsługi wyjątków
- Przeprowadzaj testy czarnej skrzynki, białej skrzynki i integracyjne
- Konfiguruj składowane pakiety i biblioteki oraz zarządzaj nimi
- Zapewniaj bezpieczeństwo za pomocą uwierzytelniania i szyfrowania
- Stosuj typy LOB do przechowywania tekstu i materiałów multimedialnych
- Pisz i implementuj wyzwalacze w językach PL/SQL i Java
- Dodawaj nowe mechanizmy za pomocą dynamicznych instrukcji SQL-a
- Poznaj typy obiektowe, tabele zagnieżdżone i zapytania rozwijające
Obowiązkowa wiedza każdego bazodanowca!
Spis treści
O autorze (15)
Podziękowania (17)
Wprowadzenie (19)
CZĘŚĆ I PODSTAWY JĘZYKA PL/SQL
1. Przegląd programowania w języku Oracle PL/SQL (33)
- Tło historyczne języka PL/SQL (33)
- Architektura używana przy programowaniu baz Oracle (35)
- Baza danych (36)
- Język PL/SQL (37)
- Architektura przetwarzania instrukcji w Oracle (40)
- Model dwuwarstwowy (41)
- Model n-warstwowy (41)
- Podsumowanie (43)
- Test wiedzy (43)
2. Nowe funkcje (45)
- Nowe funkcje SQL-a (45)
- Tworzenie obiektów LIBRARY za pomocą katalogu wirtualnego (46)
- Definiowanie tabel z obsługą wymiaru VT (46)
- Wzbogacona składnia instrukcji LEFT OUTER JOIN w bazach Oracle (47)
- Domyślne wartości kolumn oparte na sekwencjach (47)
- Wartości domyślne przy bezpośrednim wstawianiu null (49)
- Kolumny IDENTITY (49)
- Większa pojemność typów łańcuchowych i typu RAW (50)
- Przekazywanie wartości z instrukcji SQL-a do zewnętrznych programów (50)
- Określanie liczby wyników i zwracanych przedziałów wyników w natywnym SQL-u (52)
- Sterownik bazy Oracle dla aplikacji dla baz MySQL (55)
- Instrukcje CROSS APPLY, OUTER APPLY i LATERAL w SQL-u (55)
- Widoki z ustawieniem BEQUEATH CURRENT_USER (56)
- Nowe funkcje języka PL/SQL (57)
- Zapisywanie wyników funkcji z uprawnieniami jednostki wywołującej (57)
- Tworzenie białych list jednostek wywołujących w programach języka PL/SQL (57)
- Natywna obsługa klienckich interfejsów API w zakresie typów języka PL/SQL (58)
- Nowy pakiet utl_call_stack języka PL/SQL (59)
- Nowa procedura expand_sql_text w pakiecie dbms_utility (59)
- Nowy formalny schemat procedury parse w pakiecie dbms_sql (60)
- Funkcje języka PL/SQL w klauzuli WITH SQL-a (60)
- Stosowanie w SQL-u typów danych specyficznych dla języka PL/SQL (61)
- Niejawne wiązanie parametrów REF CURSOR (63)
- Skrypty pomocnicze (64)
- Podsumowanie (64)
- Test wiedzy (64)
3. Podstawy języka PL/SQL (67)
- Struktura bloków (67)
- Sekcja wykonawcza (68)
- Podstawowa struktura bloku (68)
- Sekcja deklaracji (71)
- Sekcja obsługi wyjątków (71)
- Działanie zmiennych w blokach (72)
- Bloki anonimowe (72)
- Zagnieżdżone bloki anonimowe (76)
- Lokalne bloki nazwane (78)
- Składowane bloki nazwane (80)
- Podstawowe skalarne i złożone typy danych (82)
- Skalarne typy danych (82)
- Kotwiczenie atrybutów i tabel (84)
- Złożone typy danych (86)
- Struktury sterujące (97)
- Struktury warunkowe (97)
- Struktury iteracyjne (99)
- Wyjątki (106)
- Wyjątki zdefiniowane przez użytkownika (107)
- Dynamiczne wyjątki zdefiniowane przez użytkownika (108)
- Operacje masowe (108)
- Funkcje, procedury i pakiety (110)
- Funkcje (110)
- Procedury (112)
- Pakiety (113)
- Zasięg transakcji (117)
- Pojedynczy zasięg transakcji (117)
- Wiele zasięgów transakcji (118)
- Wyzwalacze bazodanowe (119)
- Podsumowanie (120)
- Test wiedzy (120)
4. Podstawowe elementy języka (123)
- Jednostki leksykalne (123)
- Ograniczniki (123)
- Identyfikatory (127)
- Literały (129)
- Komentarze (130)
- Zmienne i typy danych (131)
- Typy zmiennych (132)
- Skalarne typy danych (134)
- Duże obiekty (typy LOB) (147)
- Złożone typy danych (149)
- Systemowe kursory referencyjne (152)
- Podsumowanie (154)
- Test wiedzy (154)
5. Struktury sterujące (157)
- Instrukcje warunkowe (157)
- Instrukcje IF (163)
- Instrukcje CASE (166)
- Instrukcje kompilacji warunkowej (168)
- Instrukcje iteracyjne (171)
- Pętle proste (171)
- Pętle FOR (177)
- Pętle WHILE (178)
- Kursory (181)
- Kursory niejawne (182)
- Kursory jawne (186)
- Instrukcje masowe (196)
- Instrukcje BULK COLLECT INTO (196)
- Instrukcje FORALL (200)
- Pomocnicze skrypty (204)
- Podsumowanie (204)
- Test wiedzy (205)
6. Kolekcje (207)
- Wprowadzenie do kolekcji (207)
- Typy obiektowe: tablice VARRAY i tabele zagnieżdżone (210)
- Tablice VARRAY (210)
- Tabele zagnieżdżone (213)
- Tablice asocjacyjne (225)
- Definiowanie i stosowanie tablic asocjacyjnych (226)
- API Collection (231)
- Metoda COUNT (233)
- Metoda DELETE (234)
- Metoda EXISTS (235)
- Metoda EXTEND (236)
- Metoda FIRST (236)
- Metoda LAST (237)
- Metoda LIMIT (237)
- Metoda NEXT (238)
- Metoda PRIOR (238)
- Metoda TRIM (239)
- Pomocnicze skrypty (240)
- Podsumowanie (240)
- Test wiedzy (240)
7. Obsługa błędów (243)
- Typy i zasięg wyjątków (243)
- Błędy kompilacji (245)
- Błędy czasu wykonania (247)
- Wbudowane funkcje do zarządzania wyjątkami (252)
- Wyjątki zdefiniowane przez użytkownika (253)
- Deklarowanie wyjątków zdefiniowanych przez użytkownika (253)
- Dynamiczne wyjątki zdefiniowane przez użytkownika (256)
- Funkcje do zarządzania stosem błędów (258)
- Pomocnicze skrypty (263)
- Podsumowanie (263)
- Test wiedzy (263)
CZĘŚĆ II PROGRAMOWANIE W JĘZYKU PL/SQL
8. Funkcje i procedury (267)
- Architektura funkcji i procedur (268)
- Zasięg transakcji (273)
- Wywoływanie podprogramów (275)
- Notacja oparta na pozycji (275)
- Notacja oparta na nazwie (276)
- Notacja mieszana (276)
- Notacja z pominięciem (276)
- Notacja w wywołaniach w języku SQL (276)
- Funkcje (277)
- Wybór rodzaju funkcji (278)
- Opcje używane przy tworzeniu funkcji (279)
- Funkcje o parametrach przekazywanych przez wartość (290)
- Funkcje o parametrach przekazywanych przez referencję (301)
- Procedury (303)
- Procedury o parametrach przekazywanych przez wartość (304)
- Procedury o parametrach przekazywanych przez referencję (307)
- Pomocnicze skrypty (309)
- Podsumowanie (309)
- Test wiedzy (309)
9. Pakiety (311)
- Architektura pakietu (311)
- Specyfikacja pakietu (316)
- Elementy prototypu (317)
- Dyrektywa prekompilatora SERIALLY_REUSABLE (319)
- Zmienne (320)
- Typy danych (322)
- Komponenty - funkcje i procedury (324)
- Ciało pakietu (325)
- Elementy prototypu (325)
- Zmienne (327)
- Typy (329)
- Komponenty - funkcje i procedury (330)
- Uprawnienia jednostki definiującej i jednostki wywołującej (332)
- Zarządzanie pakietami w katalogu bazy danych (335)
- Wyszukiwanie, walidacja i opisywanie pakietów (336)
- Sprawdzanie zależności (337)
- Metody sprawdzania poprawności - znaczniki czasu i sygnatury (338)
- Podsumowanie (339)
- Test wiedzy (339)
10. Duże obiekty (341)
- Praca z wewnętrznie składowanymi dużymi obiektami (342)
- Przypisywanie do dużych obiektów danych o wielkości poniżej 32 kilobajtów (342)
- Przypisywanie do dużych obiektów danych o wielkości powyżej 32 kilobajtów (344)
- Wczytywanie plików do wewnętrznie przechowywanych kolumn (352)
- Wczytywanie lokalnych plików do kolumn typu CLOB lub NCLOB (352)
- Wczytywanie plików lokalnych do kolumn typu BLOB (355)
- Używanie dużych obiektów za pomocą stron WWW (357)
- Praca z plikami binarnymi (typ BFILE) (363)
- Tworzenie i używanie katalogów wirtualnych (363)
- Wczytywanie ścieżek kanonicznych i nazw plików (368)
- Pakiet DBMS_LOB (374)
- Stałe pakietu (375)
- Wyjątki pakietu (376)
- Metody do otwierania i zamykania (376)
- Metody do manipulowania dużymi obiektami (377)
- Metody do introspekcji (382)
- Metody do obsługi obiektów typu BFILE (385)
- Metody do obsługi tymczasowych dużych obiektów (387)
- Metody do obsługi bezpiecznych odnośników (388)
- Skrypty pomocnicze (390)
- Skrypt przekształcający dane typu LONG na wartości typu CLOB (390)
- Zarządzanie dużymi obiektami w systemie plików (391)
- Zarządzanie obiektami typów CLOB i BLOB z poziomu stron WWW (391)
- Zarządzanie obiektami typu BFILE z poziomu stron WWW (391)
- Podsumowanie (391)
- Test wiedzy (391)
11. Typy obiektowe (393)
- Wprowadzenie do obiektów (395)
- Deklarowanie typów obiektowych (396)
- Implementacja ciała typów obiektowych (398)
- Tworzenie białych list dla typów obiektowych (402)
- Gettery i settery (403)
- Statyczne metody składowe (405)
- Porównywanie obiektów (406)
- Dziedziczenie i polimorfizm (412)
- Deklarowanie klas pochodnych (414)
- Implementowanie klas pochodnych (415)
- Ewolucja typu (418)
- Kolekcje obiektów (419)
- Deklarowanie kolekcji obiektów (419)
- Implementowanie kolekcji obiektów (420)
- Skrypty pomocnicze (422)
- Podsumowanie (423)
- Test wiedzy (423)
12. Wyzwalacze (425)
- Wprowadzenie do wyzwalaczy (425)
- Architektura wyzwalaczy w bazie danych (428)
- Wyzwalacze DDL (431)
- Funkcje-atrybuty zdarzeń (433)
- Tworzenie wyzwalaczy DDL (442)
- Wyzwalacze DML (444)
- Wyzwalacze z poziomu instrukcji (445)
- Wyzwalacze z poziomu wierszy (447)
- Wyzwalacze złożone (453)
- Wyzwalacze zastępujące (457)
- Wyzwalacze systemowe (bazy danych) (461)
- Ograniczenia związane z wyzwalaczami (462)
- Maksymalny rozmiar wyzwalaczy (462)
- Instrukcje języka SQL (463)
- Typy danych LONG i LONG RAW (463)
- Tabele mutujące (463)
- Wyzwalacze systemowe (464)
- Skrypty pomocnicze (465)
- Podsumowanie (465)
- Test wiedzy (465)
13. Dynamiczny SQL (467)
- Architektura dynamicznego SQL-a (468)
- Wbudowany dynamiczny język SQL (NDS) (468)
- Instrukcje dynamiczne (469)
- Instrukcje dynamiczne z danymi wejściowymi (471)
- Instrukcje dynamiczne z danymi wejściowymi i wyjściowymi (473)
- Instrukcje dynamiczne o nieznanej liczbie danych wejściowych (477)
- Pakiet DBMS_SQL (478)
- Instrukcje dynamiczne (479)
- Instrukcje dynamiczne o zmiennych wejściowych (482)
- Instrukcje dynamiczne o zmiennej liczbie danych wejściowych i stałej liczbie danych wyjściowych (484)
- Dynamiczne instrukcje o zmiennej liczbie danych wejściowych i wyjściowych (487)
- Definicja pakietu DBMS_SQL (492)
- Skrypty pomocnicze (503)
- Podsumowanie (503)
- Test wiedzy (503)
CZĘŚĆ III DODATKI I SŁOWNICZEK
A Wprowadzenie do bazy Oracle (507)
- Architektura bazy danych Oracle (508)
- Uruchamianie i zatrzymywanie serwera bazy Oracle Database 12c (513)
- Operacje w systemach Unix i Linux (514)
- Operacje w systemie Microsoft Windows (518)
- Uruchamianie i zatrzymywanie odbiornika Oracle (519)
- Architektura MVCC (523)
- Transakcje na danych (524)
- Kontrola blokowania i izolacji w instrukcjach DML (527)
- Uprawnienia jednostki definiującej i uprawnienia jednostki wywołującej (528)
- Uprawnienia jednostki definiującej (528)
- Uprawnienia jednostki wywołującej (529)
- Interaktywne i wsadowe przetwarzanie instrukcji SQL-a (530)
- Interfejs SQL*Plus uruchamiany z wiersza poleceń (530)
- Narzędzie Oracle SQL Developer (547)
- Administrowanie bazą danych (553)
- Dodawanie kont użytkowników (553)
- Stosowanie ograniczeń w bazach danych (560)
- Wzmacnianie zabezpieczeń (569)
- Zarządzanie danymi (577)
- Dostrajanie SQL-a (580)
- Instrukcja EXPLAIN PLAN (581)
- Pakiet DBMS_XPLAN (582)
- Śledzenie instrukcji SQL-a (585)
- Instrukcje związane z sesją śledzenia (586)
- Przekształcanie nieprzetworzonych plików śladu na czytelny format (588)
- Podsumowanie (589)
B Wprowadzenie do języka SQL (591)
- Typy danych środowiska SQL*Plus w Oracle (594)
- Język definicji danych (DDL) (597)
- Instrukcja CREATE (598)
- Instrukcja ALTER (654)
- Instrukcja RENAME (669)
- Instrukcja DROP (670)
- Instrukcja TRUNCATE (672)
- Instrukcja COMMENT (672)
- Instrukcje DML (672)
- Transakcje zgodne z modelem ACID (673)
- Instrukcja INSERT (676)
- Instrukcja UPDATE (688)
- Instrukcja DELETE (699)
- Instrukcja MERGE (703)
- Język kontroli transakcji (TCL) (709)
- Zapytania - instrukcje SELECT (711)
- Zapytania zwracające kolumny lub wyniki z kolumn (712)
- Zapytania agregujące (725)
- Zapytania selektywnie zwracające kolumny lub wyniki (729)
- Wyniki złączeń (736)
- Złączenia dotyczące wierszy (738)
- Złączenia łączące kolekcje (746)
- Podsumowanie (749)
C Funkcje wbudowane języka SQL (751)
- Funkcje znakowe (751)
- Funkcja ASCII (751)
- Funkcja ASCIISTR (752)
- Funkcja CHR (752)
- Funkcja CONCAT (753)
- Funkcja INITCAP (753)
- Funkcja INSTR (753)
- Funkcja LENGTH (754)
- Funkcja LOWER (754)
- Funkcja LPAD (755)
- Funkcja LTRIM (755)
- Funkcja REPLACE (756)
- Funkcja REVERSE (756)
- Funkcja RPAD (756)
- Funkcja RTRIM (757)
- Funkcja UPPER (757)
- Funkcje do konwersji typów danych (758)
- Funkcja CAST (758)
- Funkcja CONVERT (760)
- Funkcja TO_CHAR (760)
- Funkcja TO_CLOB (762)
- Funkcja TO_DATE (762)
- Funkcja TO_LOB (763)
- Funkcja TO_NCHAR (764)
- Funkcja TO_NCLOB (764)
- Funkcja TO_NUMBER (764)
- Funkcje do konwersji dat i czasu (765)
- Funkcja ADD_MONTHS (765)
- Funkcja CURRENT_DATE (765)
- Funkcja CURRENT_TIMESTAMP (766)
- Funkcja DBTIMEZONE (766)
- Funkcja EXTRACT (766)
- Funkcja FROM_TZ (767)
- Funkcja LAST_DAY (767)
- Funkcja LOCALTIMESTAMP (767)
- Funkcja MONTHS_BETWEEN (768)
- Funkcja NEW_TIME (768)
- Funkcja ROUND (769)
- Funkcja SYSDATE (769)
- Funkcja SYSTIMESTAMP (769)
- Funkcja TO_CHAR(data) (770)
- Funkcja TO_DSINTERVAL (771)
- Funkcja TO_TIMESTAMP (771)
- Funkcja TO_TIMESTAMP_TZ (771)
- Funkcja TO_YMINTERVAL (772)
- Funkcja TRUNC(data) (772)
- Funkcja TZ_OFFSET (772)
- Funkcje do zarządzania kolekcjami (773)
- Funkcja CARDINALITY (773)
- Funkcja COLLECT (773)
- Funkcja POWERMULTISET (776)
- Funkcja POWERMULTISET_BY_CARDINALITY (777)
- Funkcja SET (777)
- Operatory zbiorów działające dla kolekcji (777)
- Operator CARDINALITY (779)
- Operator EMPTY (779)
- Operator MULTISET (779)
- Operator MULTISET EXCEPT (780)
- Operator MULTISET INTERSECT (780)
- Operator MULTISET UNION (781)
- Operator SET (781)
- Operator SUBMULTISET OF (782)
- Funkcje liczbowe (783)
- Funkcja CEIL (783)
- Funkcja FLOOR (783)
- Funkcja MOD (783)
- Funkcja POWER (785)
- Funkcja REMAINDER (785)
- Funkcja ROUND (786)
- Funkcje do zarządzania błędami (786)
- Funkcja SQLCODE (787)
- Funkcja SQLERRM (787)
- Funkcje różne (789)
- Funkcja BFILENAME (789)
- Funkcja COALESCE (791)
- Funkcja DECODE (791)
- Funkcja DUMP (792)
- Funkcja EMPTY_BLOB (792)
- Funkcja EMPTY_CLOB (795)
- Funkcja GREATEST (795)
- Funkcja LEAST (797)
- Funkcja NANVL (798)
- Funkcja NULLIF (798)
- Funkcja NVL (799)
- Funkcja SYS_CONTEXT (799)
- Funkcja TABLE (802)
- Funkcja TREAT (804)
- Funkcja USERENV (805)
- Funkcja VSIZE (806)
- Podsumowanie (806)
D Wbudowane pakiety i typy języka PL/SQL (807)
- Nowe pakiety w wersjach Oracle Database 11g i Oracle Database 12c (807)
- Przykłady zastosowania pakietów (814)
- Przykład ilustrujący pakiet DBMS_APPLICATION_INFO (814)
- DBMS_COMPARISON (818)
- DBMS_CRYPTO (823)
- DBMS_FGA (825)
- Przypadek użycia - narzędzie do analizy zapytań (826)
- Podsumowanie (831)
E Wprowadzenie do wyrażeń regularnych (833)
- Wprowadzenie do wyrażeń regularnych (833)
- Klasy znaków (833)
- Klasy porządkowania (836)
- Metaznaki (836)
- Metasekwencje (838)
- Literały (838)
- Stosowanie wyrażeń regularnych (839)
- Funkcja REGEXP_COUNT (839)
- Funkcja REGEXP_INSTR (842)
- Funkcja REGEXP_LIKE (843)
- Funkcja REGEXP_REPLACE (844)
- Funkcja REGEXP_SUBSTR (846)
- Podsumowanie (847)
F Wprowadzenie do opakowywania kodu w języku PL/SQL (849)
- Ograniczenia w opakowywaniu kodu w języku PL/SQL (850)
- Ograniczenia związane z narzędziem wrap języka PL/SQL (850)
- Ograniczenia funkcji DBMS_DDL.WRAP (850)
- Stosowanie narzędzia wrap (850)
- Opakowywanie kodu za pomocą pakietu DBMS_DDL (851)
- Funkcja WRAP (851)
- Procedura CREATE_WRAPPED (855)
- Podsumowanie (856)
G Wprowadzenie do hierarchicznego programu profilującego języka PL/SQL (857)
- Konfigurowanie schematu (857)
- Zbieranie danych (859)
- Odczytywanie danych wyjściowych programu profilującego (861)
- Odczyt surowych danych wyjściowych (862)
- Definiowanie tabel na potrzeby programu profilującego języka PL/SQL (863)
- Zapytania o przetworzone dane (863)
- Używanie narzędzia plshprof (865)
- Podsumowanie (867)
H Słowa zarezerwowane i kluczowe języka PL/SQL (869)
- Podsumowanie (875)
I Odpowiedzi do testów wiedzy (877)
- Rozdział 1. (877)
- Rozdział 2. (879)
- Rozdział 3. (881)
- Rozdział 4. (883)
- Rozdział 5. (885)
- Rozdział 6. (887)
- Rozdział 7. (889)
- Rozdział 8. (891)
- Rozdział 9. (893)
- Rozdział 10. (895)
- Rozdział 11. (897)
- Rozdział 12. (899)
- Rozdział 13. (901)
Słowniczek (905)
Skorowidz (917)
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-9950-6 |
Rozmiar pliku: | 11 MB |