Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany przez wiele formatek lub raportów. Kurs wyjaśnia proces tworzenia anonimowych bloków PL/SQL, procedur i funkcji, bibliotek i wyzwalaczy, deklarowania zmiennych i przechwytywania wyjątków. Demonstracje i ćwiczenia pomagają w opanowaniu materiału. Podczas szkolenia studenci będą korzystać z narzędzi SQL*Plus i SQLDeveloper. CZAS TRWANIA: 5 dni CELE: Po ukończeniu kursu uczestnicy powinni rozumieć zagadnienia takie jak: - Tworzyć elastyczne programy za pomocą dynamicznego SQL - Tworzyć predefiniowane typy danych, lokalne podprogramy, używać dodatkowych pragm, stałych i wyjątków w PL/SQL - Interpretować ostrzeżenia kompilatora - Obsługiwać duże obiekty (LOB) - Rozwiązywać problemy oparte na wyzwalaczach - Zarządzać zależnościami pomiędzy jednostkami programu - Tworzyć zaplanowane zadania (scheduled job) - Tworzyć składowane procedury i funkcje - Projektować pakiety grupujące związane ze sobą podprogramy - Elastycznie programować przy użyciu przeciążonych podprogramów - Używać wbudowanych pakietów do tworzenia raportów na ekran, do pliku, w HTML i załącznikach e-mail ZAGADNIENIA: 1 Wstęp - Cele kursu - Plan kursu - Omówienie schematu HR
2 Wstęp do PL/SQL - Co to jest PL/SQL - Środowisko PL/SQL - Zalety PL/SQL - Przeglądy typów bloków PL/SQL - Tworzenie i uruchamianie podstawowych bloków anonimowych - Generowanie raportów z bloku PL/SQL 3 Deklaracja zmiennych PL/SQL - Różne typy identyfikatorów w podprogramie PL/SQL - Sekcja deklaracji w bloku PL/SQL - Deklarowanie zmiennych PL/SQL - Zasady deklaracji zmiennych PL/SQL - Zasady nazewnictwa identyfikatorów - Słowa kluczowe - Skalarne typy danych - Atrybut %TYPE - Korzystanie z sekwencji w PL/SQL 4 Pisanie wyrażeń wykonywalnych - Składnia prostych bloków - Użycie literałów w PL/SQL - Użycie bloków zagnieżdżonych i wyrażeń - Odwołanie do wartości identyfikatora w bloku zagnieżdżonym - Etykietowanie identyfikatorów - Operatory w PL/SQL - Komentarze 5 Współpraca z serwerem Oracle - Jakie wyrażenia SQL mogą być używane w PL/SQL - Użycie SELECT w PL/SQL - Pozyskiwanie danych w PL/SQL za pomocą SELECT - Modyfikowanie danych w PL/SQL - Niejawny kursor
6 Pisanie struktur kontrolnych - Kontrola przepływu programu - Przetwarzanie warunkowe przy użyciu IF - Przetwarzanie warunkowe przy użyciu CASE - Operatory logiczne - Pętle - Prosta pętla LOOP - Pętla WHILE - Pętla FOR 7 Praca ze złożonymi typami danych - Użycie rekordów PL/SQL do przechowywania różnych wartości - Tworzenie struktury rekordu PL/SQL - Użycie atrybutu %ROWTYPE Attribute do skopiowania definicji wiersza z tabeli - Wstawianie i modyfikacja za pomocą rekordów PL/SQL - Użycie tablic PL/SQL do przechowywania wielu wartości tego samego typu - Tworzenie tablicy - Zrozumienie struktury tablicy - Metody tablicy 8 Użycie jawnych kursorów - Deklaracja kursora - Kontrola jawnego kursora - Otwarcie kursora - Pobranie danych z kursora - Zamknięcie kursora - Kursory i rekordy - Kursorowe pętle FOR - Parametry kursorów 9 Obsługa wyjątków - Obsługa wyjątków w PL/SQL - Typy wyjątków
- Idea obsługi wyjątków - Wyjątki predefiniowane - Obsługa niepredefiniowanych wyjątków serwera Oracle - Funkcje, które zwracają informacje o zaistniałych wyjątkach - Obsługa wyjątków zdefiniowanych przez użytkownika - Propagacja wyjątków - Użycie procedury RAISE_APPLICATION_ERROR 10 Tworzenie procedur składowanych - Opis struktury blokowej procedury składowanej PL/SQL - Uruchomienie procedury/funkcji składowanej z innego narzędzia - Wywołanie procedury składowanej z parametrami - Składnia CREATE OR REPLACE PROCEDURE - Kolejne kroki przy tworzeniu procedury składowanej - Użycie komendy SHOW ERRORS - Odczyt kodu źródłowego z perspektywy słownikowej USER_SOURCE 11 Tworzenie składowanych funkcji - Opis funkcji składowanych - Składnia CREATE OR REPLACE FUNCTION - Kroki w tworzeniu składowanej funkcji - Tworzenie składowanej funkcji w isql*plus - Uruchomienie składowanej funkcji - Zalety użycia funkcji składowanych w wyrażeniach SQL - Ograniczenia w wywoływaniu funkcji z wyrażeń SQL - Usuwanie funkcji 12 Tworzenie pakietów - Zalety pakietów - Opis pakietów - Komponenty pakietu - Diagram widoczności konstrukcji wewnątrz pakietu - Tworzenie pakietu - Tworzenie specyfikacji pakietu - Deklaracja konstrukcji publicznych - Tworzenie ciała pakietu
13 Pakiety - dodatkowe informacje - Zalety przeciążania - Przykłady przeciążania - Deklaracja wyprzedzająca w pakiecie - Procedura jednorazowa (inicjalizacja pakietu) - Ograniczenia funkcji pakietowych używanych w SQL - Enkapsulacja kodu w pakiecie - Wywoływanie funkcji pakietowych w SQL - Zachowywanie stanu zmiennych w pakiecie 14 Użycie pakietów wbudowanych w aplikacjach - Gama zastosowań wbudowanych pakietów - Użycie polecenia DESCRIBE do identyfikacji specyfikacji pakietu - Użycie DBMS_OUTPUT (w powiązaniu z SET SERVEROUPUT ON) - Operowanie plikami systemu operacyjnego przy użyciu UTL_FILE - Przegląd procedur i wyjątków w UTL_FILE - Użycie UTL_FILE do generowania raportów do plików - Korzystanie z pakietu UTL_MAIL 15 Dynamiczny SQL i Metadane - Opis użycia dynamicznego SQL - Przebieg wykonania polecenia SQL - Składnia polecenia EXECUTE IMMEDIATE - Tworzenie procedury generującej dynamicznego SQL, używającej EXECUTE IMMEDIATE do usunięcia wierszy z tabeli - Tworzenie procedury generującej dynamicznego SQL, używającej EXECUTE IMMEDIATE do kompilacji kodu PL/SQL - Opis pakietu DBMS_SQL - Przykład użycia DBMS_SQL - Zalety Native Dynamic SQL w porównaniu z pakietem DBMS_SQL 16 Projektowanie kodu PL/SQL - Standaryzacja stałych za pomocą pakietu - Standaryzacja wyjątków za pomocą pakietu - Podprogramy lokalne- wprowadzenie - Użycie podprogramów lokalnych - Śledzenie błędów wykonania za pomocą pakietu wyjątków
- Opis hintu optymalizatora NOCOPY - Użycie hintu optymalizatora NOCOPY - Wyjaśnienie efektów NOCOPY - Klauzula DETERMINISTIC - Buforowanie wyników obliczeń funkcji PL/SQL - Mechanizm BULK BINDING 17 Zastosowania trigerów - Typy trigerów i sposób ich wykonania - Lista zalet i sposoby użycia trigerów bazodanowych - Składnia tworzenia trigera DML i lista komponentów trigera DML - Wyjaśnienie kolejności uruchamiania trigerów - Tworzenie trigerów na poziomie wyrażeń i wierszy - Użycie kwalifikatorów OLD i NEW do odwołań do wartości kolumn - Użycie predykatów warunkowych z trigerami 18 Triggery złożone, schematowe i systemowe - Tworzenie trigerów złożonych - Tworzenie trigerów DDL typu CREATE DROP i ALTER - Tworzenie trigerów zdarzeń systemowych SERVERERROR, STARTUP, SHUTDOWN, LOGON i LOGOFF - Opis biznesowy scenariuszy zaimplementowanych na trigerach - Przywileje niezbędne do zarządzania trigerami 19 Zasady działania kompilatora PL/SQL - Opis cech kompilatora PL/SQL w ORACLE 11g - Zasady działania kompilacji natywnej - Trzy parametry używane do zarządzania przebiegiem kompilacji (PLSQL_CODE_TYPE, PLSQL_DEBUG, PLSQL_OPTIMIZE_LEVEL) - Ustawianie tych parametrów - Opis perspektywy słownikowej używanej do weryfikacji sposobu kompilacji (USER_PLSQL_OBJECTS) - Zmiana ustawienia parametru, rekompilacja kodu i weryfikacja wyników - Infrastruktura ostrzeżeń kompilatora w Oracle 11g - Kroki ustawiania poziomów ostrzeżeń kompilatora
20 Zarządzanie kodem PL/SQL - Kompilacja warunkowa - Wykorzystanie kompilacji warunkowej do generowania błędów użytkownika - Pakiet DBMS_DB_VERSION - Pakiet DBMS_PREPROCESSOR - Ukrywanie kodu 21 Zarządzanie zależnościami - Definiowanie obiektów zależnych i powiązanych - Diagram zależności kodu, perspektyw, procedur i tabel - Zarządzanie lokalnych zależności pomiędzy procedurą, perspektywą a tabelą - Analiza scenariusza lokalnych zależności - inwalidacja obiektów - Wyświetlanie zależności bezpośrednich przy użyciu perspektywy USER_DEPENDENCIES - Przewidywanie efektów zmian na obiektach zależnych - Zależności między obiektami bazy rozproszonej - Rekompilacja kodu