FirebirdSQL logo

EXECUTE STATEMENT

Назначение

Выполнение динамически созданных SQL операторов.

Доступно в

PSQL

Синтаксис
<execute_statement> ::=
  EXECUTE STATEMENT <argument>
    [<option> ...]
    [INTO <variables>]

<argument> ::=
    <paramless_stmt>
  | (<paramless_stmt>)
  | (<stmt_with_params>) (<param_values>)

<param_values> ::= <named_values> | <positional_values>

<named_values> ::=
  [EXCESS] paramname := <value_expr>
  [, [EXCESS] paramname := <value_expr> ...]

<positional_values> ::= <value_expr> [, <value_expr> ...]

<option> ::=
    WITH {AUTONOMOUS | COMMON} TRANSACTION
  | WITH CALLER PRIVILEGES
  | AS USER user
  | PASSWORD password
  | ROLE role
  | ON EXTERNAL [DATA SOURCE] <connect_string>

<connection_string> ::=
  См. <filespec> в Синтаксис CREATE DATABASE !!

<variables> ::= [:]varname [, [:]varname ...]
Table 1. Параметры оператора EXECUTE STATEMENT
Параметр Описание

paramless_stmt

Строковый литерал или переменная, содержащая не параметризованный SQL запрос.

stmt_with_params

Строковый литерал или переменная, содержащая параметризованный SQL запрос.

paramname

Имя параметра SQL запроса.

value_expr

Выражение для получения значения параметра запроса.

user

Имя пользователя.Может быть строкой, CURRENT_USER или переменной.

password

Пароль.Может быть строкой или переменной.

role

Роль.Может быть строкой, CURRENT_ROLE или переменной.

connection_string

Строка соединения с удалённой БДМожет быть строкой или переменной.

varname

Переменная.

Оператор EXECUTE STATEMENT принимает строковый параметр и выполняет его, как будто это оператор DSQL.Если оператор возвращает данные, то с помощью предложения INTO их можно передать в локальные переменные.

Параметризованные операторы

В DSQL операторе можно использовать параметры.Параметры могут быть именованными и позиционными (безымянные). Значение должно быть присвоено каждому параметру.