none
null em stored procedure RRS feed

  • Pergunta

  • bom dia!

     

    fiz uma procedure para inserir numa tabela de movimentação bancária. Esta tabela possui uma coluna para o valor da movimentação e uma coluna para gravar o valor total. Então, seu eu tinha R$ 100,00 na conta e dei entrada de mais R$ 10,00, vou ficar com R$ 110,00.

     

    O valor 10, é o campo ValorMov (valor da movimentação) e a procedure calcula o novo valor somando o ValorMov com o valor que tinha antes

     

    set @Valor_Atual = @Valor_Atual + @ValorMov

     

    , que eu pego com a seguinte sql:

     

     

    select top 1 @Valor_Atual = ValorTotal

    from movimentacao_bancaria

    where ContaBancaria = @ContaBancaria

    order by codigo desc

     

     

    ela funciona perfeitamente se tiver registros na tabela. Caso não haja, dá um erro de campo nulo. Tentei resolver isso colocando o seguinte teste:

     

    if (@Valor_Atual = null) begin

    set @Valor_Atual = 0;

    end else begin

    set @Valor_Atual = @Valor_Atual + @ValorMov

    end;

     

    contudo o erro persiste. Eu acho que ele está ainda na linha:

     

    select top 1 @Valor_Atual = ValorTotal

     

    ou seja, na atribuição.

     

    Alguém tem idéia de como resolver isso?

     

     

    Obrigado por qualquer ajuda

    Diego

     

     

    quarta-feira, 2 de abril de 2008 14:12

Respostas

  • Dmeni,

     

    Acredito que o problema possa estar na verificação do valor nulo, veja se este exemplo ajuda:

     

    Code Snippet

    Declare @VAlor Int

     

    Set @Valor=Null

     

    If @Valor Is Null

     Print 'Nulo'

    Else

     Print 'Não Nulo'

     

     

    quarta-feira, 2 de abril de 2008 14:23

Todas as Respostas