Программа PL/SQL представляет собой последовательность команд, состоящих из одной или нескольких строк текста. Набор символов, из которых составляются эти строки, зависит от используемого в базе данных набора символов. Для примера в табл. 1 приведены символы набора US7ASCII.
Тип | Символы |
Буквы | A-Z, a-z |
Цифры | 0-9 |
Знаки | ~ ! @ # $ % * () _ — + = | : ; " ' < > , . ? / ^ |
Пропуски (whitespace) | Табуляция, пробел, новая строка, возврат каретки |
Каждое ключевое слово, оператор и лексема PL/SQL состоит из разных комбинаций символов данного набора. Остается разобраться, как связать эти символы друг с другом!
А теперь любопытный факт о PL/SQL. В документации Oracle (а также в предыдущих изданиях этой книги) символы &, { } и [ ] также были отнесены к стандартному набору символов. Хотя эти символы допустимы в литеральных строках, Oracle не использует их в коде PL/SQL. Более того, эти символы не могут непосредственно включаться в идентификаторы, определяемые программистом.
Запомните, что язык PL/SQL не учитывает регистр символов. Это означает, что символы верхнего регистра интерпретируются так же, как символы нижнего регистра (кроме символов, заключенных в ограничители, с которыми они интерпретируются как литеральная строка). В книге встроенные ключевые слова языка (а также некоторые идентификаторы, используемые Oracle в качестве имен встроенных функций и пакетов) обычно записываются в верхнем регистре, а идентификаторы, определяемые программистом, — в нижнем регистре.
Некоторые символы — как по отдельности, так и в сочетании с другими символами — имеют в PL/SQL специальное значение. Эти специальные символы (простые и составные) перечислены в табл. 2.
Символы | Описание |
; | Завершает объявления и команды |
% | Индикатор атрибута (атрибут курсора, подобный %ISOPEN, или атрибут неявных объявлений, например %ROWTYPE) также используется в качестве символа подстановки в условии LIKE |
_ | Обозначение подстановки одного символа в условии LIKE |
@ | Признак удаленного местоположения |
: | Признак хост-переменной, например :block.item в Oracle Forms |
** | Оператор возведения в степень |
<> или != или ^= или ~= | Оператор сравнения «не равно» |
|| | Оператор конкатенации |
<< и >> | Ограничители метки |
<= и >= | Операторы сравнения «меньше или равно» и «больше или равно» |
:= | Оператор присваивания |
=> | Оператор ассоциации |
.. | Оператор диапазона |
-- | Признак однострочного комментария |
/* и */ | Начальный и конечный ограничители многострочного комментария |
Символы группируются в лексические единицы, которые называются атомарными, поскольку они представляют собой наименьшие самостоятельные элементы языка. В PL/SQL лексическими единицами являются идентификатор, литерал, разделитель и комментарий. Мы рассмотрим их в следующей статье моего блога.