Продолжаем PL/SQL! Итак, как известно, наилучший способ изучить язык программирования - это погрузиться в него с головой! То есть начать писать программы на том языке, который вы собственно хотите изучить. По этому, помаленьку приступим к изучению самого языка. В PL/SQL действует соглашение, что все символы приводятся к верхнему регистру по этому объявления типа:
a VARCHAR2(5); A VARCHAR2(5);
Одинаковы! По этому, например, я взял сразу за правило все писать в верхнем регистре сразу, так меньше путаницы! Так же, естественно, запрещено использовать зарезервированные имена встроенных функций и пакетов! Каждый законченный оператор обрамляется символом ";". Вообще, если говорить прямо, например когда, я начал работать с PL/SQL, уже на первом этапе я четко увидел, что сам PL/SQL очень похож на язык Pascal. По этому, когда я со всем этим занимался, я как раз работал очень много на Pascal и для меня не было особых трудов привыкнуть к PL/SQL! Он мне дался довольно легко и без лишних усилий, что думаю получится и у вас! Итак, давайте разберемся для начала со всеми специальными символами, я думаю это будет полезно! Обычно разбор всех языков с этого и начинается!
Типы специальных символов PL/SQL:
+ | Сложение и унарный плюс |
---|---|
- | Вычитание и унарный минус |
* | Умножение |
/ | Деление |
** | Возведение в степень |
= | Равенство |
---|---|
< | Меньше |
> | Больше |
<> | Не равно |
!= | Не равно (альтернатива) |
~= | Не равно (альтернатива) |
^= | Не равно (альтернатива) |
<= | Меньше или равно |
>= | Больше или равно |
:= | Присвоение |
---|---|
( | Начало списка или подвыражения |
) | Конец списка или подвыражения |
, | Отдельные элементы списка (как в списке параметров) |
.. | Оператор диапазона используется в операторах FOR-IN |
|| | Конкатенация строк |
=> | Ассоциация (используется в списке параметров) |
; | Конец выражения |
% | Атрибут курсора или типа объекта |
. | Спецификация объекта |
@ | Индикатор удаленной базы данных |
' | Начало/конец строки символов |
: | Индикатор внешней переменной |
& | Индикатор связанной переменной |
-- | Комментарий в одной строке |
---|---|
/* | Начало многострочного комментария |
*/ | Конец многострочного комментария |
>> | Начало метки |
<< | Конец метки |
Самое интересное, нафига, такое количество способов, сказать не равно! Хотя != по моему вполне достаточно! Я например больше люблю вот так <>! :) Но вообще кому как нравится! Так же замечу, что вложенные комментарии не допускаются! Проще использовать /* */ как в языке C! А теперь про самое интересное - блоки PL/SQL.
Блоки PL/SQL, могут быть, как я уже говорил "именованными" и "не именованными". Блок PL/SQL является фундаментальной программной конструкцией! Программирование модулями позволяет разрабатывать легко читаемый код и программировать сверху вниз. Неименованный блок PL/SQL, имеет три раздела - Declaration (объявления), Body (тело) и, как правило, Exception (исключения).
Стандартная конструкция неименованного блока:
DECLARE -- объявления BEGIN -- выполняемый код EXCEPTION -- обработка исключений END; / -- символ завершения для запуска блока на компиляцию
Итак, запускаем блокнот и SQL*Plus, пришло время написать и запустить вечную мантру программистов - правильно!!! "Hello World!". Итак, код реализующий данную вечную и незыблемую мантру таков:
SET SERVEROUTPUT ON BEGIN DBMS_OUTPUT.enable; DBMS_OUTPUT.put_line('Hello World!!!'); END; /
Получаем после компиляции:
SQL> SET SERVEROUTPUT ON SQL> BEGIN 2 DBMS_OUTPUT.enable; 3 DBMS_OUTPUT.put_line('Hello World!!!'); 4 END; 5 / Hello World!!! PL/SQL procedure successfully completed
УРА!!! Получилось!!! А вот теперь немного, почесав затылок, попробуем разобраться, что же здесь для чего? Итак строка SET SERVEROUTPUT ON заставляет, сервер выводить сообщения как бы на "экран" или консоль. Что-то в этом духе (эту строку нужно вводить один раз на сеанс, при последующих запусках, ее можно не использовать!). Хотя, если правильно, то выводит пакет DBMS_OUTPUT, а первая строка просто заставляет сервер показывать то, что выводит пакет DBMS_OUTPUT с помощью метода put_line(), то есть показывать то, что возвращает сервер. BEGIN END - это обрамляющий программный блок. Пункт DECLARE отсутствует, в следствии того что, нам пока ничего не нужно декларировать! Но в дальнейшем он нам понадобиться! "/" - символ запускающий код на исполнение. Строка "PL/SQL procedure successfully completed" просто говорит, что блок выполнился успешно. Вот собственно и все!!!
Можете написать, что ни будь свое и попробовать, что получиться! Еще раз проштудируйте специальные символы, так как далее мы будем ими часто пользоваться!