Fórum select e update na mesma store procedure #59922

30/06/2008

0

Estou tentando fazer a seguinte store procedure:

CREATE PROCEDURE SOMA_AV_DESMPENHO (
cod_av integer)
returns (
soma integer)
as
begin
select
/* Realiza a soma de todos os campos*/
av_dsenp.comprometimento +
av_dsenp.interesse +
av_dsenp.rel_inter_pessoal +
av_dsenp.lideranca
from
av_dsenp
where
(av_dsenp.cod_av = :cod_av)
/* Guarda o resultado dentro da variavel SOMA*/
into :soma;
/* Atualiza o campo total com o valor da variavel SOMA*/
update
av_dsenp
set
av_dsenp.total = :soma
where
(av_dsenp.cod_av = :cod_av);

suspend;
end

e me aparece a seguinte mensagem:

´Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
lock conflict on no wait transaction.
deadlock.
update conflicts with concurrent update.´

Existe a possíbilidade de realizar um select somando os campos e logo em seguida atualizar o campo total com o resultado da variavel soma??

Mt obrigado pelas respostas


Ricklorente

Ricklorente

Responder

Posts

30/06/2008

Emerson Nascimento

tente assim:
CREATE PROCEDURE SOMA_AV_DESMPENHO (
  cod_av integer)
returns (
  soma integer)
as
begin
  /* Atualiza o campo total com a soma dos campos */
  update
    av_dsenp
  set
    total = comprometimento + interesse +
            rel_inter_pessoal + lideranca
  where
    cod_av = :cod_av;

  /* Obtém o total calculado e guarda o resultado na variavel SOMA */
  select
    total
  from
    av_dsenp
  where
    cod_av = :cod_av
  into :soma;

  suspend;
end



Responder

Gostei + 0

30/06/2008

Ricklorente

emerson.en mt obrigado pela ajuda, deu certinho aqui desse jeito..

abraços


Responder

Gostei + 0

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

Aceitar