150 likes | 290 Views
PL/SQL kompilacja warunkowa. Nowinki z Oracle 10g. Zalety kompilacji warunkowej. Umożliwia włączenie kodu debagującego (np. komunikatów.) przy testach i wyłączenie na produkcji.
E N D
PL/SQL kompilacja warunkowa Nowinki z Oracle 10g Filip Jakubowski-Drzewiecki
Zalety kompilacji warunkowej • Umożliwia włączenie kodu debagującego (np. komunikatów.) przy testach i wyłączenie na produkcji. • Pozwala na korzystanie z linii kodu specyficznych dla wykorzystywanego systemu operacyjnego i swobodną jego podmianę podczas migracji. Filip Jakubowski-Drzewiecki
Nowe podejście do programowania w PL/SQL • Nowe podejście do Unit testów • Możemy uruchamiać warunkowo programy/procesy testujące • Symulacje zachowań za pomocą zastępczych obiektów (Mock objects) • Implementacja alternatywnych zachowań programu • Dla nieprzenaszalnych części kodu • Dla rozpatrzenia kilku podejść • Możliwość nie uwzględniania aseracji w aplikacji produkcyjnej Filip Jakubowski-Drzewiecki
Konstrukcje kompilacji warunkowej • Dyrektywa typu selection • Dyrektywa typu inquiry • Dyrektywa typu error directive • Pakiet DBMS_DB_Version Filip Jakubowski-Drzewiecki
Dyrektywa typu selection • Obowiązek użycia statycznych zmiennych • Warunki nie mogą się zmieniać w czasie kompilacji (zawsze true lub zawsze false) Filip Jakubowski-Drzewiecki
Selection c.d. • Nie kompilowany kod nie jest brany pod uwagę. • Prekompilator reaguje jedynie na poprawnie sformułowaną składnie. Filip Jakubowski-Drzewiecki
Dyrektywa typu inquiry • FlagiCC • Możliwość użycia zmiennych Filip Jakubowski-Drzewiecki
Dyrekywa typu error • Przyjmuje jako argument łańcuch znaków Filip Jakubowski-Drzewiecki
Pakiet DBMS_DB_Version • Możliwość uzależnienia niektórych rozwiązań od wykorzystywanej wersji bazy (przydatne np. w aplikacjach rozproszonych) Filip Jakubowski-Drzewiecki
Uzależnienie kompilowanego kodu od dostępnych rozszerzeń • Wyzwalacz (trigger) DDL może utworzyć lub podmienić jednostkę kompilacji • Możliwość budowania kompleksowych aplikacji korzystających z dostępnych udogodnień na docelowym środowisku Filip Jakubowski-Drzewiecki
Pozostałe nowinki Oracla 10g • Aplikacje wykorzystujące intensywnie PL/SQL działają ok. 2 razy szybciej niż gdyby były uruchomione na 9i • Będą również działały ponad 3 razy szybciej niż na 8i. Filip Jakubowski-Drzewiecki
Nowinki Składniowe • Typy danych binary_float i binary_double (standard IEEE). • Wsparcie wyrażeń regularnych • regexp_like, regexp_instr, regexp_substr i regexp_replace • Operacje na zbiorach typu: nested table • equals, union, intersect, except, member i inne. • Możliwość wyboru cudzyzłowu przez użytkownika ‘/”. • Wyrażenia typu: • indices of ; values of syntax for / forall. • binary_integer wypiera pls_integer Filip Jakubowski-Drzewiecki
Optymalizacja PL/SQL • Optymalizator może przearanżować wykonywany kod aby zwiększyć efektywność aplikacji Filip Jakubowski-Drzewiecki
Nowe narzędzia / pakiety • Utl_Mail. – Umożliwia wysyłanie emaili i czyni przeźroczysty (w przeciwieństwie do starego poakietu Utl_Smtp) protokuł SMTP. • Utl_Compress. – Daje możliwość pakowania i rozpakowywania elementów jak np. LOB czy BLOB • Dbms_Warning – nowa funkcjonalność dająca kontrolę kategorii i zarządzania błędami Filip Jakubowski-Drzewiecki
Źródło • www.oracle.com • www.otn.oracle.com Filip Jakubowski-Drzewiecki