понедельник, 29 ноября 2010 г.

Основы PL/SQL 4

Сегодня у нас последняя статья, посвященная основам PL/SQL. Предыдущая статья, из этой серии была опубликована двадцать первого ноября, недавно. В ближайшее время я планирую перейти уже к следующей теме, связанно с PL/SQL, а пока – закончим эту (о которой я начал рассказывать еще аж 22 октября). По традиции, давайте вспомнит те основы PL/SQL, которые нам предстоит рассмотреть:

Основы PL/SQL:

1.      Наборы символов и лексем
2.      Объявления
3.      Правила именования
4.      Область действия и видимость идентификаторов PL/SQL
5.      Присваивание значений переменным
6.      Выражения и операции сравнения PL/SQL
7.      Функции выдачи сообщений об ошибках в PL/SQL
8.      Использование функций SQL в PL/SQL
9.      Условная компиляция
10.    Использование PL/SQL для веб-приложений и серверных страниц

Так как у нас последняя статья на эту тему, то мы рассмотрим три последних элемента в этом списке – статья будет довольно большой. Поехали:

8. Использование функций SQL в PL/SQL

В выражениях
PL/SQL можно использовать все функции SQL, за исключением ниже приведенных:
  • Агрегатные функции (AVG, COUNT)
  • Аналитические функции (LAG)
  • Функции коллекций (CARDINALITY, SET)
  • Функции интеллектуального анализа данных (CLUSTER_ID)
  • Функции кодирования и декодирования данных (DECODE)
  • Функции моделей (PREVIOUS)
  • Функции объектных ссылок (REF, VALUE)
  • Функции XML (EXISTNODE)
  • Некоторые функции преобразования типов данных (CAST, RAWTONHEX)
  • Некоторые другие функции (LNNVL, SYS_TYPEID, WIDTH_BUCKET)
9. Условная компиляция

С помощью условной компиляции можно подстроить функциональные возможности приложения
PL/SQL, не удаляя какие-либо фрагменты исходного кода. Например, с помощью условной компиляции можно адаптировать приложение PL/SQL, для того, чтобы:

  • Использовать новейшие возможности последней версии сервера ORACLE или отключить новые возможности для выполнения приложения в предыдущих версиях баз данных;
  • Включить функциональные возможности отладки и трассировки в среде разработки и отключить эти функции в приложении, если оно выполняется в производственной базе данных;
Как же работает условная компиляция? Для указания исходного текста для компиляции используются директивы выбора вариантов, директивы запроса параметров и директивы обработки ошибок. Директивы запроса параметров обращаются к значениям параметра компиляции PLSQL_CCFLAGS, представляющий собой пары имя-значение. Директивы выбора вариантов могут выполнять проверки значений для директив запроса параметров или статических констант пакета.

Пакет DBMS_DB_VERSION содержит константы, представляющие собой номер версии и выпуска базы данных, которые могут использоваться для условной компиляции. Пакет DBMS_PREPROCESSOR содержит подпрограммы для доступа к обработанному исходному тексту, который был сформирован в единицу PL/SQL в результате обработки исходного текста директивами условной компиляции.

Условная компиляция и связанные с ней пакеты PL/SQL доступны в базе данных ORACLE версии 10.1.0.4 и выше.

Условная компиляция – это тема, о которой необходимо будет поговорить отдельно и более подробно. Поэтому сейчас я только расскажу о том, как внешне она выглядит и какие у нее есть ограничения. С остальными темами условной компиляции познакомимся немного позже.

Символ включения условной компиляции ($) указывает на код, подвергаемый предварительно обработке перед компиляцией приложения. Управляющий символ условной компиляции имеет следующий вид:

Управляющий_символ_препроцессора ::= $идентификатор_ PLSQL

Знак $ должен быть указан перед именем идентификатора; пробелы между именем идентификатора и знаком $ недопустимы. Знаки $ также могут встречаться внутри имени идентификатора, но в этом случае они не имеют специального значения. Зарезервированными управляющими фразами препроцессора являются:

$IF, $THEN, $ELSE, $ELSIF, $END и $ERROR.

Директивы условной компиляции не могут быть использованы в спецификации объектного типа или спецификации вложенной таблицы или массива, определяемых на уровне схемы. Разборщик операторов SQL накладывает ограничения на употребление директив при выполнении таких операций SQL, как оператор CREATE OR REPLACE, или выполнении анонимного блока.

10. Использование PL/SQL для веб-приложений и серверных страниц

С помощью
PL/SQL можно создавать приложения, генерирующие веб-страницы непосредственно из базы данных.

Ход выполнения программы в веб-приложении PL/SQL сходен с ходом выполнения программы в скрипте CGI Perl. Объединение содержимого веб и хранимых подпрограмм PL/SQL обеспечивает мощный и гибкий механизм обработки данных, хранящихся в базе данных.

Серверные страницы PL/SQL позволяют создавать веб-страницы с динамическим содержимым.

Во время разработки, серверные страницы могут выполнять роль шаблонов, в которых статическая часть является разметкой страницы, а динамическая служит для вывода содержимого. Можно проектировать макет страницы, используя привычные инструментальные средства разработки HTML, оставляя заполнители для динамически заполняемого содержимого. Впоследствии, для создания содержательной части можно написать командные файлы PL/SQL. По окончании созданные файлы серверных страниц загружаются в базу данных в виде хранимых подпрограмм.

2 комментария:

  1. PL/SQL - оно Вам надо?

    Написали бы лучше, как add-in'ы к MS Visual Studio писать.

    ОтветитьУдалить
  2. Так в том то и дело, что надо ))
    Я ж при работе использую базу данных Oracle. А с помощью чего пишут в Oracle? Правильно, на PL/SQL. Вот и изучаю.
    А с аддонами я пока еще не встречался ни разу (всмысле - не программировал).

    ОтветитьУдалить