Oracle10g: Programowanie w PL/SQL OPIS: Szkolenie dotyczy użytkowników Oracle8i, Oracle9i i Oracle10g. Ten kurs pozwala zrozumieć zalety tego potężnego narzędzia programowania do PL/SQL. Studenci uczą się tworzyć bloki PL/SQL, które mogą być dzielone między wiele formatek, raportów i aplikacji. Użytkownicy uczą się tworzenia anonimowych bloków PL/SQL oraz procedur i funkcji. Uczą się deklarowania zmiennych i przechwytywania wyjątków. Demonstracje i ćwiczenia pomagają w opanowaniu materiału. Kurs jest zaprojektowany dla deweloperów z podstawową znajomością SQL i PL/SQL, którzy chcą tworzyć procedury składowane, pakiety i trigery bazodanowe. Studenci będą używać isql*plus, opcjonalnie w użyciu będzie JDeveloper. Kurs zawiera dużą ilość demonstracji i ćwiczeń. CZAS TRWANIA: 5 dni CELE: Po ukończeniu kursu uczestnicy powinni rozumieć zagadnienia takie jak: - Tworzenie elastycznych programów za pomocą dynamicznego SQL - Tworzenie predefiniowanych typów danych, lokalnych podprogramów, stałych i wyjątków w PL/SQL - Ostrzeżenia kompilatora - Obsługa dużych obiektów (LOB) - Rozwiązania oparte na triggerach - Zarządzanie zależnościami pomiędzy jednostkami programu - Tworzenie zaplanowanych zadań (scheduled job) - Tworzenie składowanych procedur i funkcji - Projektowanie pakietów grupujących związane ze sobą podprogramy - Elastyczne programowanie przy użyciu przeciążonych podprogramów - Zestawienie wbudowanych pakietów PL/SQL - Użycie wbudowanych pakietów do tworzenia wyjścia na ekran, do pliku, na web i e-mail 1
ZAGADNIENIA: 1 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 wyjścia z bloku PL/SQL - isql*plus jako środowisko programowania PL/SQL 2 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 3 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 4 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 2
5 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 6 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 7 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 3
8 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 9 Modularyzacja programu za pomocą bloków PL/SQL - Opis schematu Human Resources (HR) - Opis środowiska wykonywalnego PL/SQL - Kodowanie w PL/SQL w środowisku isql*plus - Kodowanie w PL/SQL w środowisku SQLPlus - Kodowanie w PL/SQL w środowisku JDeveloper - Tworzenie i wywoływanie prostych procedur i funkcji 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 z isql*plus, Forms, Java, C, itd. - Wywołanie procedury składowanej z bloku anonimowego, albo innej składowanej procedury - 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 4
- 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 uprzednia 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 - Opis funkcjonalności pakietu HTP - Tworzenie kodu HTML przy użyciu pakietu HTP 5
15 Dynamiczny SQL i Metadane - Opis użycia dynamicznego SQL - Przebieg wykonania polecenia SQL - Składnia polecenia EXECUTE IMMEDIATE - Tworzenie procedury generującej dynamiczne SQL, używającej EXECUTE IMMEDIATE do usunięcia wierszy z tabeli - Tworzenie procedury generującej dynamiczne 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 17 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 - Wyświetlanie zależności bezpośrednich przy użyciu perspektywy USER_DEPENDENCIES - Uruchomienie skryptu UTL_DTREE.SQL w celu stworzenia obiektów pozwalających na wgląd w zależności bezpośrednie i pośrednie - Wyświetlanie zależności z perspektywy DEPTREE - Przewidywanie efektów zmian na obiektach zależnych 6
18 Zarządzanie wielkimi obiektami (LOB) - Opis obiektu LOB - Anatomia LOB - Zarządzanie i cechy wewnętrznego LOB'a - Opis, zarządzanie i zabezpieczenia BFILE - Tworzenie i użycie obiektu DIRECTORY w celu dostępu do BFILE - Przygotowanie BFILE do użycia - Użycie funkcji BFILENAME do załadowania BFILE - Opis pakietu DBMS_LOB - Opis różnych typów trigerów i sposobów ich wykonania - Lista zalet i sposoby użycia trigerów bazodanowych - Pokaz działania trigerów z podstawowym przykładem trigera bazodanowego - 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 19 Zastosowania trigerów - Tworzenie trigerów DDL typu CREATE DROP i ALTER - Tworzenie trigerów zdarzeń systemowych SERVERERROR, STARTUP, SHUTDOWN, LOGON i LOGOFF - Przykłady trigerów LOGON i LOGOF - Użycie wyrażenia CALL do uruchomienia procedury z wnętrza trigera - Definicja tabeli mutującej - Przykład tabeli mutującej - Opis biznesowy scenariuszy zaimplementowanych na trigerach - Przywileje niezbędne do zarządzania trigerami 20 Zasady działania kompilatora PL/SQL - Opis cech kompilatora PL/SQL w ORACLE 10g - Zasady działania kompilacji natywnej - Trzy parametry używane do zarządzania przebiegiem kompilacji (PLSQL_CODE_TYPE, PLSQL_DEBUG, PLSQL_OPTIMIZE_LEVEL) 7
- 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 10g - Kroki ustawiania poziomów ostrzeżeń kompilatora 8