Продолжаем 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" просто говорит, что блок выполнился успешно. Вот собственно и все!!!
Можете написать, что ни будь свое и попробовать, что получиться! Еще раз проштудируйте специальные символы, так как далее мы будем ими часто пользоваться!