Оператор обращения Firebird внутри хранимой процедуры

#sql #stored-procedures #case #firebird #control-flow

#sql #хранимые процедуры #обращение #firebird #поток управления

Вопрос:

Я пытался использовать case оператор внутри хранимой процедуры, но я получил «Неизвестный токен» на нем. case не поддерживается в хранимой процедуре? Спасибо

Ответ №1:

Как писал Андрей, CASE доступно только в SELECT операторах. Итак, хитрость в его использовании заключается в выборе из некоторой таблицы, которая имеет только одну строку, например RDB$DATABASE :

 SELECT
  CASE
    ...
  END
FROM RDB$DATABASE INTO :myVAR;
  

Конечно, это полезно только в том случае, если вы хотите присвоить значение переменной на основе некоторых условий, если вам нужен оператор потока управления, тогда IF / ELSE лестница — единственный вариант.

Ответ №2:

Оператор обращения можно использовать только в операторе выбора. Автономное использование не допускается.