Размер шрифта
-
+

Язык PL/SQL - стр. 11

Анонимные блоки либо вкладываются в другие блоки, либо хранятся в виде текстовых файлов-сценариев. В последнем случае анонимные блоки, как правило, используются для вызова хранимых программ или для автоматизации задач администрирования баз данных.


Анонимный блок-сценарий file1.sql

Вложенные анонимные блоки

в именованном блоке хранимой программы


DECLARE

i INTEGER;

– именованный блок процедуры proc1

– в разделе анонимного блока

PROCEDURE proc1 IS

BEGIN

NULL;

END;

BEGIN

– вызов процедуры proc1

proc1;

END;

– именованный блок процедуры proc2

CREATE PROCEDURE proc2 AS

BEGIN

– родительский анонимный блок,

– вложенный в именованный proc2:

DECLARE

BEGIN

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

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

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

Страница 11