为什么我不能执行这个alter procedure firebird查询?

时间:2010-09-17 11:56:57

标签: sql firebird firebird2.1

查询是:

SET TERM ^ ;
ALTER PROCEDURE SALVARROTA (
    datahora timestamp,
    distancia double precision,
    custo double precision,
    capacidadelivre double precision,
    capacidadetotal double precision,
    nome varchar(50),
    depositox double precision,
    depositoy double precision,
    chegadax double precision,
    chegaday double precision,
    arquivoshp blob sub_type 0 segment size 80,
    arquivodbf blob sub_type 0 segment size 80,
    arquivoshx blob sub_type 0 segment size 80,
    veiculo varchar(50),
    placa varchar(8),
    valor double precision)
returns (
    id integer)
as
BEGIN     INSERT INTO ROTAS
        (DATAHORA, DISTANCIA, CUSTO, CAPACIDADELIVRE, CAPACIDADETOTAL, NOME, DEPOSITOX, DEPOSITOY, CHEGADAX, CHEGADAY, ARQUIVOSHP, ARQUIVODBF, ARQUIVOSHX, VEICULO, PLACA, VALOR)
VALUES (:DATAHORA, :DISTANCIA, :CUSTO, :CAPACIDADELIVRE, :CAPACIDADETOTAL, :NOME, :DEPOSITOX, :DEPOSITOY, :CHEGADAX, :CHEGADAY, :ARQUIVOSHP, :ARQUIVODBF, :ARQUIVOSHX, :VEICULO, :PLACA, :VALOR);
SELECT GEN_ID (GEN_ROTAS_ID,0) FROM RDB$DATABASE INTO ID;     SUSPEND;  END
^

SET TERM ; ^

我收到错误:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 5.
TERM. 

我正在使用IBExpert来执行它,它是一个2.1 firebird DB

2 个答案:

答案 0 :(得分:1)

不要在IBExpert的SQL编辑器窗口中使用SET TERM指令。仅在Script Executive窗口中允许它。

答案 1 :(得分:0)

IBExpert自动生成脚本(使用存储过程编辑器并单击flash按钮),然后按“复制脚本”按钮

我认为他们总是创造或改变程序......

相关问题