Non puoi dichiarare variabile in Firebird 2.5, perché?
-
28-10-2019 - |
Domanda
Ho una query a una riga:
DECLARE VARIABLE var_SecondsOfTime INTEGER;
Ma dopo aver eseguito la domanda ricevo questo messaggio:
Errore del motore (codice = 335544569): errore SQL dinamico. Codice di errore SQL = -104. Token Sconosciuto - riga 1, colonna 9. variabile.
Errore SQL (codice = -104): token non valido.
Ho guardato ovunque su Internet e tutti gli esempi che mostrano lo stesso stile di dichiarazione che sto usando.
Che c'è?
Soluzione
Firebird 2.5 supporta l'esecuzione di blocchi di codice circondati da a eseguire il blocco dichiarazione, prova questo:
set term ^ ;
EXECUTE BLOCK
AS
DECLARE VARIABLE var_SecondsOfTime INTEGER;
BEGIN
SELECT 1 from RDB$DATABASE into var_SecondsOfTime ;
END
^
set term ; ^
Ho emesso la selezione perché sono abbastanza sicuro che non è possibile eseguire un blocco vuoto, provalo da solo rimuovendo la selezione.
ModificareLa mia selezione originale non è stata valida per un blocco, ho aggiunto la clausola IN per raccogliere il risultato. Non ho mai usato Firebird Maestro, ma ora funziona perfettamente su ISQL, come mostrato.
Altri suggerimenti
Prova questo:
set term ^ ;
EXECUTE BLOCK
AS
DECLARE VARIABLE var_SecondsOfTime INTEGER;
BEGIN
SELECT 1 from RDB$DATABASE into :var_SecondsOfTime ;
END^
set term ;^
Il secondo termine ha bisogno del semi -colon davanti al carato.