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]

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

Cristianojedi

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar