Stavo cercando di utilizzare l'istruzione case
all'interno di una procedura memorizzata, ma su di essa ho ricevuto "Token unknown". case
non è supportato nella stored procedure? GrazieDichiarazione CASE di Firebird all'interno della stored procedure
5
A
risposta
2
È possibile utilizzare l'istruzione CASE solo all'interno dell'operatore SELECT. L'uso autonomo non è consentito.
6
Come ha scritto Andrei, CASE
è disponibile solo nelle istruzioni SELECT
. Quindi il trucco di usarlo è quello di selezionare da qualche tavolo che ha una sola fila, come RDB$DATABASE
:
SELECT
CASE
...
END
FROM RDB$DATABASE INTO :myVAR;
Naturalmente, questo è solo utile nel caso in cui si desidera assegnare valore a una variabile in base ad alcune condizioni, se hai bisogno di una dichiarazione di flusso di controllo, allora la scala IF/ELSE
è l'unica opzione.