Fórum Erro na criação de Stored Procedure #57038
06/10/2006
0
Pessoal,
Que erro é este que está dando quando eu crio minha SP no IBConsole?
[color=red:ecf096498f][b:ecf096498f]Dynamic SQL Error
SQL error code = -104
Token unknown - line 4, char 4
tipo
Statement:[/b:ecf096498f][/color:ecf096498f]
Que erro é este que está dando quando eu crio minha SP no IBConsole?
[color=red:ecf096498f][b:ecf096498f]Dynamic SQL Error
SQL error code = -104
Token unknown - line 4, char 4
tipo
Statement:[/b:ecf096498f][/color:ecf096498f]
set term !! ; create procedure atualiza_sal_saldo (codigo integer, dt date, valor numeric(15, 2), tipo char(1)) as begin if tipo = ´E´ then begin if (exists(select 1 from saldo where ent_codigo = :codigo and sal_dtsal = :dt)) then begin update saldo set sal_saldo = sal_saldo + :valor where ent_codigo = :codigo and sal_dtsal = :dt; end else begin insert into saldo(ent_codigo, sal_dtsal, sal_saldo) values (:codigo, :dt, :valor); end end else begin if (exists(select 1 from saldo where sai_codigo = :codigo and sal_dtsal = :dt)) then begin update saldo set sal_saldo = sal_saldo + :valor where sai_codigo = :codigo and sal_dtsal = :dt; end else begin insert into saldo(sai_codigo, sal_dtsal, sal_saldo) values (:codigo, :dt, :valor); end end end !! set term ; !!
Cristianojedi
Curtir tópico
+ 0
Responder
Posts
08/10/2006
Acacio
Tente Assim.
CREATE or alter PROCEDURE ATUALIZA_SAL_SALDO(
CODIGO INTEGER,
DT DATE,
VALOR NUMERIC(15,2),
TIPO CHAR(1))
AS
begin
if (:tipo = ´E´) then
begin
if (exists(select 1 from saldo where ent_codigo = :codigo and sal_dtsal = :dt)) then
begin
update saldo set sal_saldo = sal_saldo + :valor
where ent_codigo = :codigo and sal_dtsal = :dt;
end
else
begin
insert into saldo(ent_codigo, sal_dtsal, sal_saldo)
values (:codigo, :dt, :valor);
end
end
else
begin
if (exists(select 1 from saldo where sai_codigo = :codigo and sal_dtsal = :dt)) then
begin
update saldo set sal_saldo = sal_saldo + :valor
where sai_codigo = :codigo and sal_dtsal = :dt;
end
else
begin
insert into saldo(sai_codigo, sal_dtsal, sal_saldo)
values (:codigo, :dt, :valor);
end
A = 1;
end
END
CREATE or alter PROCEDURE ATUALIZA_SAL_SALDO(
CODIGO INTEGER,
DT DATE,
VALOR NUMERIC(15,2),
TIPO CHAR(1))
AS
begin
if (:tipo = ´E´) then
begin
if (exists(select 1 from saldo where ent_codigo = :codigo and sal_dtsal = :dt)) then
begin
update saldo set sal_saldo = sal_saldo + :valor
where ent_codigo = :codigo and sal_dtsal = :dt;
end
else
begin
insert into saldo(ent_codigo, sal_dtsal, sal_saldo)
values (:codigo, :dt, :valor);
end
end
else
begin
if (exists(select 1 from saldo where sai_codigo = :codigo and sal_dtsal = :dt)) then
begin
update saldo set sal_saldo = sal_saldo + :valor
where sai_codigo = :codigo and sal_dtsal = :dt;
end
else
begin
insert into saldo(sai_codigo, sal_dtsal, sal_saldo)
values (:codigo, :dt, :valor);
end
A = 1;
end
END
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)