Шаг 86 - PL/SQL - Язык программирования Oracle

В "Шаг 73 - PL/SQL - функции PL/SQL осталось немного ..." мы с вами закончили близкое рассмотрение функций PL/SQL - вот теперь давайте вернемся к этому вопросу, а именно изучению языка PL/SQL. В "Шаг 38 - PL/SQL - вводный курс" я уже останавливался на описании языка PL/SQL, но кое что, еще осталось и думаю, что это вам будет не безынтересно. Итак SQL - в PL/SQL соответствует стандарту ANSI (American National Standards Institute - Американский национальный институт стандартов.) определенному документом ANSI X3.135-1992 "Database Language SQL". Именно этот стандарт известный как SQL92 (или SQL2), сам по себе определяет язык SQL и не описывает 3GLPL/SQL. Cтандарт SQL92 имеет три уровня согласования: Entry (начальный), Intermediate (промежуточный) и Full (полный). Oracle 7 варианта 7.2 - (и все другие версии более высокого уровня, в том числе Oracle8) соответствует стандартам Entry SQL92, что одобрено NIST (National Institute for Standards and Technology - Национальный Институт стандартов и технологий). В настоящее время Oracle - работает с ANSI, чтобы обеспечить, соответствие будущих версий Oracle и PL/SQL полному стандарту. Может показаться неожиданным, но язык PL/SQL разработан на основе языка третьего поколения Ada (хотя мне лично, как кажется я уже говорил он очень напоминает язык Pascal!). Многие конструкции, применяемые в Ada можно найти в PL/SQL - такие, например как модули - так называемые пакеты. Но о них мы поговорим позже. Как Вы, наверное, поняли базовой единицей языка PL/SQL является блок (block), который имеет следующую структуру:

DECLARE

 ............
 

BEGIN

 ........

EXCEPTION 

 ........

END;

Думаю, знакомая вам конструкция!? :) Это так называемый анонимный блок. Такой блок каждый раз при выполнении компилируется. Так же он не хранится в базе данных и не может быть вызван из другого блока. В данном случае приступим к изучению именованных блоков - процедур и функций. Такие блоки хранятся в базе данных и могут быть использованы повторно. А вот это не маловажный фактор! Итак, собственно первая конструкция, которую мы рассмотрим, это именованный блок или ПРОЦЕДУРА. Синтаксис его объявления таков:

-------------- CREATE [OR REPLACE] PROCEDURE - имя_процедуры ----------------------------------
-------------- (аргумент [IN] [OUT] [IN OUT] тип, ..... ) AS [IS] -----------------------------
-------------- тело процедуры -----------------------------------------------------------------

где:

Для изменения программного кода процедуры ее необходимо удалить, а затем создать вновь, для того, чтобы делать это за один проход применяется дополнительный оператор объявления REPLACE, что буквально понимается, как заменить. Если его не применять, то процедуру необходимо удалить с помощью оператора DROP PROCEDURE имя. Вот таким образом, определяется данная конструкция. Далее мы с вами поучимся создавать процедуры.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 03.02.2004