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'è?

È stato utile?

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.

isql running the block

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top