- •Модель клиент/сервер
- •Лексические единицы
- •Идентификаторы
- •Зарезервированные слова
- •Ограничители
- •Литералы
- •Комментарии
- •Блок pl/sql
- •Объявление переменных
- •Типы pl/sql
- •Числовые
- •Символьные
- •Семейство типов без обработки
- •Семейство типов даты.
- •Семейство типов rowid
- •Семейство логических типов
- •Семейство типов Trusted
- •Ссылочные типы.
- •Типы lob
- •Записи.
- •Использование %type, %rowtype
- •Подтипы, определяемые пользователями
- •Преобразование типов данных
- •Выражения и операции
- •Присваивание
- •Логические выражения
- •Управляющие структуры pl/sql
- •Операторы goto и метки
- •Использование sql в pl/sql
- •Связи баз данных
- •Ссылки на таблицы
- •Курсоры и курсорные переменные
- •Курсорные атрибуты
- •Циклы выборки
Операторы goto и метки
Применяются операторы GOTO (перейти к). Синтаксис оператора GOTO таков:
GOTO метка
где мешка — это метка, определяемая в блоке PL/SQL. Метки заключаются в двойные угловые скобки.
При выполнении оператора GOTO управление программой сразу же передается оператору, на который указывает метка.
Нельзя передавать управление программой во внутренний блок, цикл или оператор IF. Кроме того, запрещается передавать управление программой из одной последовательности операторов условного оператора IF в другую. Нельзя передавать управление из обработчика исключительной ситуации обратно в текущий блок.
Помечены могут быть и сами циклы. При этом метка может быть указана в операторе EXIT, чтобы определить цикл, который нужно прервать.
EXIT l_Outer;
Если цикл помечен, имя метки можно указывать после оператора END LOOP.
Прагмы (pragmas) — это директивы компилятора, которые служат в качестве инструкций компилятор, который выполняет прагму во время компиляции блока.
RESTRICT_RFFERENCES (ограничить ссылки) устанавливает ограничения на способ использования SQL-операторов в некоторой функции.
Использование sql в pl/sql
Некоторые виды операторов.
■ С помощью операторов языка манипулирования данными (DML — data manipulation language) можно модифицировать и запрашивать информацию, содержащуюся в таблицах, однако нельзя изменять структуру таблиц и других объектов.
■ С помощью операторов управления транзакциями обеспечивается согласованность данных. Это достигается объединением SQL-операторов в логические транзакции, которые выполняются либо успешно, ибо неуспешно как единое целое.
Из всех SQL-операторов в программах PL/SQL можно использовать лишь операторы DML и операторы управления транзакциями. Оператор EXPLAIN PIAN (объяснить план) — хотя он и относится к категории DML — применять также не разрешается.
Select
С помощью оператора SELECT данные выбираются в базе данных и записываются в переменные PL/SQL.
Основная форма инструкция SELECT выглядит так:
SELECT список_столбцов
FROM слисок_таблиц
WHERE условия
GROUP BY список_столбцов
HAVING условия
ORDER BY слисок_столбцов;
Этот синтаксис требует, чтобы элементы в списках разделялись запятыми.
По умолчанию применяется сортировка (ORDER BY) по возрастанию. Вы можете отсортировать результаты в убывающем порядке, используя ключевое слово DESC.
Связи баз данных
Если в системе установлено программное средство SQL*Net, то можно применять связи баз данных. Связь баз данных (database link) — это ссылка на удаленную базу данных, которая может быть размещена в системе, не имеющей ничего общего с локальной базой данных. Связь баз данных создается с помощью следующего оператора DDL:
CREATE DATABASE LINK имя_связи
CONNECT TO имя_пользователя IDENTIFIED BY пароль
USING sqlnet_строка;
Синтаксис для имени связи баз данных — имя_сеязи — подчиняется обычным правилам, установленным для идентификаторов баз данных. Элементы имя_пользователя и пароль идентифицируют схему удаленной базы данных, a sqlnet_cmpокa является корректной последовательностью символов, применяющейся для соединения с удаленной базой данных.