Buscar registro anterior e dar um update

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
pc_delphi
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 128
Registrado em: Qui, 29 Mai 2008 6:44 pm
Localização: São Paulo
Tudo posso, nAquel que me fortalece
Filipenses 4:13

Tenho o seguinte problema. Uma rede ela é marcada por coordenadas. Preciso fazer um select(loop) de forma que que ele vá pegando a coordenada anterior e colocando na superior com update, mais ou menos assim:
Rede atual:
Campos:
X, Y, FX, FY, Niv

O FX atual, seria igual ao X anterior. O FY atual, seria igual ao Y anterior e o Niv seria o anterior + 1.

Alguém poderia me dar uma ajuda nisso? Como fazer meu loop, para ir atualizando a tabela?
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Se entendi algo, você precisa de uma query hierárquica ou recursiva. Só que com o exemplo que você deu não consegui sacar o seu problema e o requisito.
Daria para você postar a estrutura da tabela (exemplos) com conteúdo de teste para as linhas e colunas delas, e o exemplificar para esse caso de teste o que você espera obter ou executar, concretamente?
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

Seria isso?

Selecionar tudo

update tabela
set fx = x, fy = y, niv = niv+1;
Os campos e os valores são da mesma tupla ou de tuplas diferentes? Se diferentes, como diferenciá-las?
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

se eu entendi,

loop

update usando as variaveis alimentadas abaixo, ou seja, se referem a linha anterior do loop;

alimenta as v ariaveis com os valores que precisa

end loop;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes