PL / SQL - базовый синтаксис
В этой главе мы обсудим базовый синтаксис PL / SQL, который является block-structuredязык; это означает, что программы PL / SQL разделены и записаны в виде логических блоков кода. Каждый блок состоит из трех частей -
S.No | Разделы и описание |
---|---|
1 | Declarations Этот раздел начинается с ключевого слова DECLARE. Это необязательный раздел, в котором определяются все переменные, курсоры, подпрограммы и другие элементы, которые будут использоваться в программе. |
2 | Executable Commands Этот раздел заключен между ключевыми словами BEGIN и ENDи это обязательный раздел. Он состоит из исполняемых операторов PL / SQL программы. Он должен иметь хотя бы одну исполняемую строку кода, которая может быть простоNULL command чтобы указать, что ничего не должно выполняться. |
3 | Exception Handling Этот раздел начинается с ключевого слова EXCEPTION. Этот необязательный раздел содержитexception(s) которые обрабатывают ошибки в программе. |
Каждый оператор PL / SQL заканчивается точкой с запятой (;). Блоки PL / SQL могут быть вложены в другие блоки PL / SQL, используяBEGIN и END. Ниже приводится базовая структура блока PL / SQL.
DECLARE
<declarations section>
BEGIN
<executable command(s)>
EXCEPTION
<exception handling>
END;
Пример "Hello World"
DECLARE
message varchar2(20):= 'Hello, World!';
BEGIN
dbms_output.put_line(message);
END;
/
В end;строка сигнализирует об окончании блока PL / SQL. Чтобы запустить код из командной строки SQL, вам может потребоваться ввести / в начале первой пустой строки после последней строки кода. Когда приведенный выше код выполняется в командной строке SQL, он дает следующий результат:
Hello World
PL/SQL procedure successfully completed.
Идентификаторы PL / SQL
Идентификаторы PL / SQL - это константы, переменные, исключения, процедуры, курсоры и зарезервированные слова. Идентификаторы состоят из буквы, за которой могут следовать другие буквы, цифры, знаки доллара, подчеркивания и цифровые знаки, и не должны превышать 30 символов.
По умолчанию, identifiers are not case-sensitive. Итак, вы можете использоватьinteger или же INTEGERдля представления числового значения. Вы не можете использовать зарезервированное ключевое слово в качестве идентификатора.
Разделители PL / SQL
Разделитель - это символ с особым значением. Ниже приведен список разделителей в PL / SQL -
Разделитель | Описание |
---|---|
+, -, *, / | Сложение, вычитание / отрицание, умножение, деление |
% | Индикатор атрибута |
' | Разделитель символьной строки |
. | Селектор компонентов |
(,) | Выражение или разделитель списка |
: | Индикатор переменной хоста |
, | Разделитель предметов |
" | Указанный разделитель идентификатора |
= | Оператор отношения |
@ | Индикатор удаленного доступа |
; | Терминатор заявления |
:= | Оператор присваивания |
=> | Оператор ассоциации |
|| | Оператор конкатенации |
** | Оператор возведения в степень |
<<, >> | Разделитель меток (начало и конец) |
/*, */ | Разделитель многострочного комментария (начало и конец) |
-- | Индикатор однострочного комментария |
.. | Оператор диапазона |
<, >, <=, >= | Операторы отношения |
<>, '=, ~=, ^= | Различные версии НЕ РАВНО |
Комментарии PL / SQL
Комментарии к программе - это пояснительные утверждения, которые могут быть включены в код PL / SQL, который вы пишете, и помогают любому, кто читает его исходный код. Все языки программирования допускают ту или иную форму комментариев.
PL / SQL поддерживает однострочные и многострочные комментарии. Все символы, доступные внутри любого комментария, игнорируются компилятором PL / SQL. Однострочные комментарии PL / SQL начинаются с разделителя - (двойной дефис), а многострочные комментарии заключаются в / * и * /.
DECLARE
-- variable declaration
message varchar2(20):= 'Hello, World!';
BEGIN
/*
* PL/SQL executable statement(s)
*/
dbms_output.put_line(message);
END;
/
Когда приведенный выше код выполняется в командной строке SQL, он дает следующий результат:
Hello World
PL/SQL procedure successfully completed.
Программные модули PL / SQL
Блок PL / SQL может быть любым из следующих:
- Блок PL / SQL
- Function
- Package
- Тело пакета
- Procedure
- Trigger
- Type
- Тип кузова
Каждый из этих модулей будет обсуждаться в следующих главах.