- •Модель клиент/сервер
- •Лексические единицы
- •Идентификаторы
- •Зарезервированные слова
- •Ограничители
- •Литералы
- •Комментарии
- •Блок pl/sql
- •Объявление переменных
- •Типы pl/sql
- •Числовые
- •Символьные
- •Семейство типов без обработки
- •Семейство типов даты.
- •Семейство типов rowid
- •Семейство логических типов
- •Семейство типов Trusted
- •Ссылочные типы.
- •Типы lob
- •Записи.
- •Использование %type, %rowtype
- •Подтипы, определяемые пользователями
- •Преобразование типов данных
- •Выражения и операции
- •Присваивание
- •Логические выражения
- •Управляющие структуры pl/sql
- •Операторы goto и метки
- •Использование sql в pl/sql
- •Связи баз данных
- •Ссылки на таблицы
- •Курсоры и курсорные переменные
- •Курсорные атрибуты
- •Циклы выборки
Модель клиент/сервер
Многие приложения для работы с базами данных создаются с использованием модели клиент/сервер. Сама программа размещается на компьютере клиента и посылает запросы на получение информации серверу базы данных. Запросы инициируются при помощи SQL, что, как правило, приводит к наличию в сети большого числа посылок — по одной на каждый SQL-оператор. Эта ситуация иллюстрируется в левой половине рис. 1.1. Теперь обратимся к его правой половине. Несколько SQL-операторов могут быть объединены в единый блок PL/SQL и посланы серверу как единое целое. В результате сетевой трафик снижается, а приложение функционирует намного быстрее.
Лексические единицы
Любая программа PL/SQL состоит из лексических единиц — строительных блоков языка. По сути дела. лексическая единица — это последовательность символов, являющихся частью набора, разрешенного в PL/SQL В состав этого набора символов входят:
■ Буквы верхнего и нижнего регистров: A-Z и a-z
■ Цифры: 0-9
■ Разделители: символы табуляции, пробелы и символы возврата каретки
■ Математические символы: + - * / < > =
■ Символы пунктуации: ( ) { } [ ] ? ! ~ ; : . ' " @ # % $ ^ & _ |
В программе PL/SQL может быть использован любой символ, но только из этого набора. Подобно SQL, PL/SQL не учитывает регистр символов. Иначе говоря, буквы верхнего и нижнего регистров эквивалентны, за исключением строк символов, заключенных в кавычки.
Идентификаторы
Идентификаторы используются для именования объектов PL/SQL, таких как переменные, курсоры, типы и подпрограммы. Идентификатор начинается с буквы, за которой может следовать любая последовательность символов, состоящая ил букв, цифр, знаков доллара ($), знаков подчеркивания и знаков фунта (#). Другие символы запрещены. Максимальная длина идентификатора — 30 символов, причем все они являются значащими. PL/SQL не учитывает регистр символов. Если нужно сделать идентификатор чувствительным к регистру символов, включить в его состав такие символы, как пробелы, или воспользоваться зарезервированными словами, можно заключить такой идентификатор в двойные кавычки. Максимальная длина идентификаторов в кавычках также равна 30 символам (без учета двойных кавычек). В состав идентификатора в кавычках может входить любой печатный символ, за исключением двойных кавычек.
Зарезервированные слова
Многие идентификаторы, называемые зарезервированными (или ключевыми) словами, имеют в PL/SQL особое значение. Использовать эти слова для именования собственных идентификаторов нельзя. (Напр. Begin) В состав же других идентификаторов они могут быть включены. (Напр. v_BeginDate)
Ограничители
Ограничители — это символы (одни символ или их последовательность), которые имеют специальное значение в PI./SQL. Они применяются для отделения идентификаторов друг от друга. Список ограничителей PL/SQL, приведен в таблице 2.1.
Литералы
Литерал — это символьное, числовое или логическое значение, которое не является идентификатором. Например, как -23.450, так и NULL — литералы. Символьные литералы (называемые также строковыми) состоят из одного или нескольких символов, ограниченных одиночными кавычками. Символьные литералы могут быть присвоены переменным, имеющим тины CHAR и VARCHAR2. без преобразования. Считается, что все строковые литералы имеют тип данных CHAR. Частью литерала может быть любой печатный символ из набора символов PL/SQL, в том числе и еще одна одиночная кавычка. Чтобы включить одиночную кавычку в строковый литерал, нужно расположить две одиночные кавычки рядом друг с другом. Например, поместить строку "Mike's string" в литерал следует так: . Строка ' '
считается = NULL.
Числовой литерал может представлять как целое, так и действительное значение. Числовые литералы могут быть присвоены без преобразования переменным, имеющим тип NUMBER. Это единственный вид литералов, которые разрешено использовать в арифметических выражениях. Целые литералы состоят из цифр, перед которыми может присутствовать знак литерала (+ или -). В таких литералах запрещается указывать десятичную точку. Действительные литералы состоят из цифр (с указанием десятичной точки), перед которыми может стоять знак литерала. При желании действительные литералы могут быть записаны при помощи экспоненциального представления. Приведенные ниже действительные литералы также вполне корректны:
1.345Е7 9.87Е-3 -7.12е+12
После Е или е можно укалывать только целый литерал. Е означает "экспонента", т. е. умножить на 10 в степени …
Существует три логических литерала: TRUE (истина), FALSE (ложь) и NULL. Эти значения могут быть присвоены лишь логическим (булевым) переменным. Логические литералы обозначают истинность или ошибочность некоторых условий и используются в операторах IF и LOOP.