MySQL Forums
Forum List  »  Portuguese

Atualizar registro do Cursor (FETCH)
Posted by: felipe aron
Date: April 05, 2011 11:40AM

Tenho uma Procedure, e nela eu percorro um resultado SQL através de um CURSOR.

Para cada registro da SQL(FETCH), faço cálculos e com o resultado desse cálculo eu preciso atualizar esse registro.

Sem a adição da SQL - "Update" dentro do CURSOR, os cálculos são feitos corretamente. PORÉM, ao adicionar o UPDATE dentro do CURSOR, para atualizar o registro em questão, ocorre problemas com os valores (cálculos) das variáveis.

É como se ao atualizar o mesmo registro fosse chamado novamente, antes de partir para o próximo registro.

Código do CURSOR:

OPEN cursorSQL;
REPEAT

FETCH cursorSQL INTO VI_CodigoCredito, VN_Valor, VC_Tipo;
if (not DONE) then


if (VC_Tipo = 'S') then SET VN_Valor := (VN_Valor * -1); end if;

SET VN_ValorAnterior := VN_NovoValor;
SET VN_NovoValor := VN_ValorAnterior + VN_Valor;

/*===>>>> SE COLOCO O UPDATE AQUI DA ERRO <<<===*/
UPDATE credito c
SET c.ValorAnt_CRE = VN_ValorAnterior,
c.NovoValor_CRE = VN_NovoValor
WHERE c.KCredito_CRE = VI_CodigoCredito;


end if;

UNTIL DONE END REPEAT;
CLOSE cursorSQL;

Como faço então para colocar uma instrução UPDATE dentro do CURSOR sem ocorrer esse tipo de problema?

Options: ReplyQuote


Subject
Views
Written By
Posted
Atualizar registro do Cursor (FETCH)
5880
April 05, 2011 11:40AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.