Оценить:
 Рейтинг: 0

Язык PL/SQL

Год написания книги
2017
<< 1 2 3 4 5 6 7 8 9 10 ... 80 >>
На страницу:
6 из 80
Настройки чтения
Размер шрифта
Высота строк
Поля

– еще один анонимный блок

– вложенный в родительский:

DECLARE

BEGIN

NULL;

END; – конец вложенного блока

END; – конец родительского блока

END;– конец именованного блока proc2

Комментарии

В любом месте исходного кода на PL/SQL могут быть комментарии, однострочные и многострочные.

Однострочные комментарии начинаются с двух дефисов (символы –). Весь текст после двух дефисов и до конца строки рассматривается как комментарий и игнорируется компилятором. Если два дефиса стоят в начале строки, то комментарием является вся строка.

Многострочный комментарий размещается между начальным (/*) и конечным (*/) ограничителями. Вложение многострочных комментариев друг в друга не допускается.

Тема комментирования исходного кода заслуживает отдельного рассмотрения. Авторы книги являются сторонниками следующего принципа: «Комментируйте неочевидные участки кода. Не комментируйте очевидные».

О том, как следует комментировать код, есть несколько хороших статей, также эта тема подробно рассмотрена в книгах, посвященных выработке хорошего стиля программирования. Особое внимание следует уделить тому, чтобы тексты комментариев соответствовали актуальной версии кода. Довольно часто после внесения изменений в коде забывают их отразить в комментариях.

Переменные и константы PL/SQL

Приведем пример анонимного блока, в котором объявлены одна константа и две переменные, а в исполняемом разделе выполняются действия по вычислению натуральных логарифмов чисел 2 и 3.

/* Вычисление

двух логарифмов */

SQL> DECLARE

2 header1 CONSTANT VARCHAR2(20) := 'Логарифм двух равен ';

3 header2 CONSTANT VARCHAR2(20) := 'Логарифм трех равен ';

4 arg INTEGER := 2;

5 – исполняемый раздел

6 BEGIN

7 DBMS_OUTPUT.PUT_LINE(header1||LN(arg));

8 arg := arg+1;

9 DBMS_OUTPUT.PUT_LINE(header2||LN(arg));

10 END;

11 /

Логарифм двух равен .6931471805599453094172321214581765680782

Логарифм трех равен 1.09861228866810969139524523692252570465

PL/SQL procedure successfully completed.

В разделе объявлений можно объявлять как переменные, так и константы (с помощью ключевого слова CONSTANT). Константа отличается от переменной тем, что ее значение нельзя изменять после объявления. Если указать константу в левой части оператора присваивания и т. п., то это будет определено как ошибка еще на этапе компиляции. Переменным присваивать значения можно в любом разделе, в том числе прямо при ее объявлении в разделе объявлений. По умолчанию переменная инициализируется «пустым» значением NULL.

Имена констант, переменных, пользовательских типов данных в грамматике PL/SQL называются идентификаторами. К идентификаторам предъявляются следующие требования:

идентификатор должен состоять только из букв, цифр и символов _$#

идентификатор должен начинаться с буквы;

длина идентификатора должна быть до 30 символов;

идентификатор не должен быть зарезервированным словом.

Примеры недопустимых идентификаторов:

2_name (начинается не с буквы, правильно – l_second_name);

l_exchange_rate_on_current_date (длина свыше 30 символов).

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

В языке PL/SQL переменные, константы и пользовательские типы данных являются локальными для блока, в котором они объявлены. Когда выполнение блока будет завершено, все эти объекты внутри программы становятся недоступными. Можно сказать, что у каждого объявленного в программе PL/SQL элемента имеется некоторая область видимости – участок программы, в котором можно ссылаться на этот элемент (блок, в котором элемент объявлен, и все вложенные в него блоки).

Структуры управления вычислениями

Известно, что для реализации алгоритмов на процедурном языке программирования требуется наличие в нем трех следующих структур управления вычислениями, причем должна быть возможность вкладывать все структуры друг в друга произвольным образом:

последовательность команд (выполнение команд согласно их упорядоченности);

выбор (проверка условия и выполнение той или иной последовательности команд в зависимости от истинности или ложности условия);

повторение (выполнение последовательности команд до тех пор, пока условие повторения принимает истинное значение).

Рис. 1. Структуры управления вычислениями.

Команды, указанные в коде PL/SQL, выполняются последовательно. Такая схема называется потоком команд, то есть первая требуемая структура управления вычислениями (последовательность) в PL/SQL имеется. Рассмотрим языковые конструкции PL/SQL для выбора и повторения (условные команды, команды перехода и циклы).
<< 1 2 3 4 5 6 7 8 9 10 ... 80 >>
На страницу:
6 из 80