[firebase-br] Procedure com decimal (18,18)

Magnun Oliveira magnunoliveira em gmail.com
Seg Ago 2 09:32:57 -03 2010


Bom dia galera ... 

preciso fazer uma procedure, porem com um campo decimal (18,18), e o valor é retornado como null ... 
Para a primeira parte da procedure: 
EX: 
DURABILIDADE = 5500; 
COBERTURA_PADRAO = 5;
ALTURA_PAPEL = 29,7;
LARGURA_PAPEL = 21;

RESULTADO -> DURABILIDADE_CM2 = 17151750;

VALOR = 500;

RESULTADO CUSTO_CM2 = 0,000029151544303060;


Porem me retorna null para o CUSTO_CM2, e acredito que esteja se perdendo com a qtde de casas decimais, pois com uma menor qtde ele funcionou .
Alguem sabe como fazer ele aceitar 18 casas ?

Obrigado.


//Código da procedure:
     


SET TERM ^ ;

RECREATE PROCEDURE PRC_INSUMOS_CM2 (
 ID_PRODUTO INTEGER)
AS 
DECLARE VARIABLE DURABILIDADE_CM2 DECIMAL(10,2);
DECLARE VARIABLE CUSTO_CM2 DECIMAL(18,18);
BEGIN
  
  select DURABILIDADE * COBERTURA_PADRAO * ALTURA_PAPEL * LARGURA_PAPEL 
    from PRODUTOS
    inner join FORMATOS on FORMATOS.ID_FORMATO = PRODUTOS.ID_FORMATO
    where PRODUTOS.ID_PRODUTO = :ID_PRODUTO
  into :DURABILIDADE_CM2;
  
  select VALOR / :DURABILIDADE_CM2 from PRODUTOS where ID_PRODUTO = :ID_PRODUTO
  into :CUSTO_CM2; 
  
  update PRODUTOS set CUSTO_CM2 = :CUSTO_CM2, DURABILIDADE_CM2 = :DURABILIDADE_CM2
  where ID_PRODUTO = :ID_PRODUTO;
  
END^

SET TERM ; ^


      MAGNUN OLIVEIRA
      magnun em evolutiva.com.br
      Fone: (14) 3324-4010
      www.evolutiva.com.br  



Mais detalhes sobre a lista de discussão lista