[firebase-br] procedure

Ari Marcondes ari em pegasus.fmrp.usp.br
Ter Jan 11 12:28:46 -03 2005


Olá pessoal,
estou tento um probleminha em uma procedure, vou colocar uma parte da procedure
e vou explicando o que acontece:



1º Select
Select coalesce(sum(totalPremio),0), coalesce(count(*),1) from ramoAutomovel where idProposta = :idProposta into :totalPremio, :totalItens;


2º Select
begin
  select sum((((((coalesce(a.cApolice,0) + coalesce(a.adicFrac,0) + :totalPremio) *
  coalesce(a.iof,1))/100) + (coalesce(a.cApolice,0) + coalesce(a.adicFrac,0) +
  :totalPremio + coalesce(a.encargos,0) + coalesce(a.agravo,0)) -
  coalesce(a.desconto,0)) / :nroParcela))/:totalItens
  from proposta a left join ramoAutomovel b on a.idProposta = b.idProposta
  and a.idProposta = :idProposta where a.idproposta = :idProposta into :valParcelas;
end


No 1º select estou pegando 2 valores (:totalPremio, :totalItens).


No 2º estou usando a variavel :totalPremio para fazer uma conta e aí que esta gerando
o erro. Depois que fiz essa alteração começou a dar erro.

tentei depurar isso no ibExpert e a única coisa que vi de diferente
foi que o retorno da variavel totalPremio vem 0,00 qdo não tenho valor nela e se 
substituo a variavel pelo valor 0,00 dá erro no select. Aí tentei colocar 0 e 0.00
e funcionou das 2 formas. Gostaria de saber o que posso fazer p/ reparar esse problema.

PS: esse erro só acontece qdo o :totalPremio é 0, se tem valor não dá o problema.

PS: todos os valores do 2º select são do tipo decimal e a variavel :totalPremio tb.

Erro gerado:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 1.
recalculaParcela.
Transaction rolled back...

[]'s

Ari Marcondes


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.832 / Virus Database: 566 - Release Date: 10/01/2005


Mais detalhes sobre a lista de discussão lista