Почти неделю назад – во вторник, мы с вами рассмотрели достоинства PL/SQL – статья должна ввести вас в курс дела. Но достоинства – достоинствами. Для того, чтобы успешно программировать на языке PL/SQL необходимо знать все его возможности, то есть – разбираться в том, что можно сделать с его помощью. Поэтому – сегодня предлагаю обсудить не все, а (пока) – основные возможности PL/SQL.
Этих основных возможностей я насчитал десять штук, поэтому, если рассматривать все подробно в одной статье – получится слишком много информации для одного раза. Чтобы этого не произошло – я разбил все основные возможности на две группы. Сегодня мы изучим первые четыре, а через пару дней – остальные шесть.
В общей части статьи скажу, что PL/SQL объединяет в себе всю мощь SQL и широкие процедурные достоинства.
Основные возможности PL/SQL:
1. Блоки
2. Обработка ошибок
3. Ввод и вывод
4. Переменные и константы
------------------------------
5. Абстракция данных
6. Управляющие структуры
7. Подпрограммы
8. Пакеты (программные интерфейсы)
9. Условная компиляция
10. Операторы встроенного SQL
А теперь более подробно:
1. Блоки в PL/SQL:
Блоки – это базовая единица исходной программы на языке PL/SQL. Блоки объединяют логически связанные объявления и операторы. Блок в PL/SQL может начинаться следующими ключевыми словами: DECLARE, BEGIN и EXCEPTION (объявлений, исполняемы и исключений). Обязателен только исполняемый блок. Переменные, объявленные в блоке DECLARE – являются локальными, то есть – они прекращают свое существование после того, как выполнение блока завершиться. Там, где разрешено – блоки можно вкладывать друг в друга. Существуют два типа блоков в PL/SQL – анонимный и именованный. Анонимный используется лишь один раз, а именованный (то есть – с именем) – много раз по имени (их называют подпрограммами).
2. Обработка ошибок в PL/SQL:
Такая возможность облегчает задачу обнаружения и обработки негативных ситуаций (исключений). После возникновения исключения нормальное выполнение программы прекращается и управление передается специальному коду обработки исключений, находящемуся в конце каждого блока PL/SQL. Каждое отдельное исключение можно обрабатывать в каждом отдельно обработчике исключений. Но можно – все ошибки обработать в одном. Такая обработка исключений происходит автоматически. Существуют предопределенные исключения. Им соответствуют имена, например, при делении на ноль возникает исключение ZERO_DIVIDE. Но можно создавать и свои собственные исключения для обработки состояний, которые являются ошибочными в вашей программе. После обработки ошибки, управление передается в качало блока. Поэтому код, который может вызвать исключение, надо помещать в блок BEGIN .. END, чтобы продолжить логичное выполнение программы даже после возникновения исключения.
3. Ввод и вывод в PL/SQL:
Большая часть операций ввода и вывода происходит при выполнении SQL запросов (чтение, обновление и удаление данных в таблицах и других объектах). Остальная часть операций ввода и вывода является результатом работы программных интерфейсов (API) приложений (например – DBMS_OUTPUT). Для отображения подобных данных нужна определенная программа (PL/SQL Developer или SQL*Plus). Также существуют следующие API для ввода и вывода информации: HTF, HTP, DMPS_PIPE, UTL_FILE и другие. Чаще всего – в них нет функций приема данных с клавиатуры.
4. Переменные и константы PL/SQL:
Эта возможность позволяет объявлять переменные и константы, а затем – использовать их в операторах SQL и процедурных операторах в любом месте, где может быть использовано выражение. Переменные и константы нужно объявлять до обращения к ним в блоке объявлений DECLARE. Как уже было сказано, переменные и константы являются локальными для блока, в котором они объявлены.
Как и было сказано в начале данной статьи – сегодня я расскажу только о четырех возможностях из десяти. Более подробно я их буду рассматривать далее. А следующие шесть возможностей рассмотрим, скорее всего, в понедельник или в среду.
а где продолжение?
ОтветитьУдалитьВот, вторая часть: http://paveldev.blogspot.com/2010/10/osnovnie-vozmozhnosti-plsql-part-2.html
ОтветитьУдалитьспасибо.
ОтветитьУдалить