#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:
Оператор обращения можно использовать только в операторе выбора. Автономное использование не допускается.