Расширения языка PSQL
Расширения языка PSQL
Расширения языка PSQL включают следующие языковые элементы:
* операторы BEGIN и END для выделения блоков кода, которые могут быть вложенными;
* операторы DECLARE VARIABLE для объявления локальных переменных;
* конструкция FOR SELECT <спецификация-выбора> INTO <список-переменных? DO инкапсулирует курсор SQL для выполнения цикла просмотра наборов. Циклы могут быть вложенными;
* циклы WHILE;
* оператор SUSPEND для пересылки строки в кэш строк;
* конструкция IF ... THEN и ELSE для ветвления в программе;
* оператор EXCEPTION <объявленное-имя-исключения> для вызова пользовательских исключений;
* необязательные блоки WHEN <условие-исключения> DO для перехвата и обработки исключений;
* POST_EVENT <строка> для передачи сообщений клиентам.
Firebird версии 1.5 и более поздние также поддерживает:
* оператор EXECUTE STATEMENT для выполнения специальных операторов DML и DDL в модуле;
* логические контекстные переменные UPDATING, INSERTING и DELETING;
* контекстная переменная ROW_COUNT для получения количества строк, полученных выполненным оператором DML в том же блоке;
* дополнительный синтаксис для EXCEPTION без аргументов - для повторного вызова исключений, а с необязательным текстовым аргументом - для передачи информации клиенту.
Ограничения PSQL
Существуют некоторые ограничения языка для кодов в модулях PSQL.
* Операторы, использующие подмножество языка определения данных (DDL) SQL Firebird, не разрешены в PSQL[111].
* Операторы управления транзакциями недопустимы в PSQL, потому что хранимые процедуры и триггеры всегда выполняются в контексте существующей клиентской транзакции, a Firebird не поддерживает вложенные транзакции.
* Некоторые другие типы операторов, зарезервированные для использования в других средах (например, в isql, скриптах или во встроенном SQL - см. следующий раздел). Допустимы все динамические операторы DML.
* Идентификаторы объектов метаданных, такие как имена таблиц, столбцов, просмотров или хранимых процедур, не могут передаваться хранимой процедуре или возвращаться хранимой процедурой в ее аргументах.
* Триггеры не могут получать или возвращать аргументы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
R.18.1 Расширения
R.18.1 Расширения В этом разделе перечисляются основные расширения языка С, введенные в
Процедурный язык (PSQL)
Процедурный язык (PSQL) Стандарт не описывает возможности процедурного языка, поскольку в принципе предполагает, что общие задачи программирования будут решены с использованием языка программирования. Не существует спецификаций для конструкций языка по манипулированию,
Выражения в PSQL
Выражения в PSQL Процедурный язык для триггеров и хранимых процедур PSQL широко использует выражения для управления потоком выполнения. PSQL предоставляет структуры IF(<предикат>) THEN и WHILE(<предикат>) DO. Любой предикат, который может быть использован в условии поиска, также
"Точки сохранения" в PSQL
"Точки сохранения" в PSQL Добавление возможностей создания пользовательских точек сохранения в Firebird 1.5 позволяет приложению управлять область действия отката транзакции. В PSQL всегда была возможность обработки исключений. Подробности см. в главе
Ограничения PSQL
Ограничения PSQL Существуют некоторые ограничения языка для кодов в модулях PSQL.* Операторы, использующие подмножество языка определения данных (DDL) SQL Firebird, не разрешены в PSQL[111].* Операторы управления транзакциями недопустимы в PSQL, потому что хранимые процедуры и триггеры
Типы операторов, не поддерживаемых в PSQL
Типы операторов, не поддерживаемых в PSQL Следующие типы операторов не поддерживаются в триггерах и хранимых процедурах:* операторы языка определения данных (т. е. операторы, начинающиеся с ключевых слов CREATE, RECREATE, ALTER или DROP; SET GENERATOR; DECLARE EXTERNAL FUNCTION: DECLARE FILTER);* операторы
ГЛАВА 29. Разработка модулей PSQL.
ГЛАВА 29. Разработка модулей PSQL. Хранимые процедуры и триггеры объявляются при помощи операторов CREATE PROCEDURE и CREATE TRIGGER соответственно. Каждый из этих сложных операторов состоит из заголовка и
Курсоры в PSQL
Курсоры в PSQL Курсоры состоят из трех основных элементов:* набора строк, определенных выражением SELECT;* указателя, который перемещается через набор от первой строки к последней, изолируя строку для некоторого вида деятельности;* набора переменных- определенных как
Особенности PSQL для триггеров
Особенности PSQL для триггеров Два особых элемента PSQL доступны триггерам: логические контекстные переменные событий INSERTING, UPDATING и DELETING и контекстные переменные NEW и OLD. Переменные события В Firebird появляются логические контекстные переменные INSERTING, UPDATING и DELETING, чтобы
Глава 10. Расширения языка XSLT
Глава 10. Расширения языка XSLT Десятая глава посвящена вопросам создания и использования функций и элементов расширения. В этой главе разбирается процесс написания и подключения функций и элементов расширения на примере интерфейсов таких процессоров, как Saxon, Xalan и Oracle XSLT
Глава 10 Расширения языка XSLT
Глава 10 Расширения языка XSLT Что такое расширения? Предыдущие главы этой книги были посвящены, в основном, тому, что может XSLT. Эти возможности, естественно, далеко не безграничны, да и нельзя ожидать слишком многого от специализированного языка, каким является XSLT.Вместе с
Расширения
Расширения Xalan С++ позволяет вызывать в XSLT-преобразовании пользовательские функции расширения, написанные на языке С. Кроме того, в дополнение к базовым функциям XSLT, Xalan С++ реализует несколько наиболее часто используемых функций, например, функцию nodeset. В текущей версии (1.2)
Расширения
Расширения Расширения для Saxon могут быть созданы на языке Java в виде функций и элементов. Saxon отличает возможность использования Java-функций расширения, написанных для других Java-процессоров (в частности Xalan и Oracle XSLT Processor).Для программирования элементов расширения Saxon
Расширения
Расширения Java-версия Oracle XSLT Processor может расширяться пользовательскими функциями, написание которых, в принципе, ничем не отличаются от стандартных методов создания Java-функций расширения.К сожалению, Oracle XSLT Processor не поддерживает пользовательские элементы расширения.