Fórum SQL Oracle #485579

15/07/2014

0

Prezados poderiam me ajudar? Gostaria de realizar um cursor ou algo assim mas não consigo aprender, mesmo sendo basico rs..

Tenho duas tabelas

Tabela1 e Tabela 2

Estas duas tabelas tem um codigo unico como referencia ou seja:

tabela1.codigo = tabela2.codigo

Tenho que fazer um update na tabela1 com os dados da tabela2 validando a coluna codigo.

ou seja:

o update simples seria:

update tabela1 set teste1(valor a ser alterado) = @teste2 (valor na tabela 2 correto)
where tabela1.codigo = tabela2.codigo

Será que deu para entender?

Agradeço a ajuda.
Vinicius Brasil

Vinicius Brasil

Responder

Posts

15/07/2014

Fabiano Carvalho

Utilize JOIN, não precisa utilizar cursor.

UPDATE A SET A.COLUNA1 = 'VALOR'
FROM TABELA1 A 
INNER JOIN TABELA B
ON A.CODIGO = B.CODIGO
Responder

Gostei + 0

15/07/2014

Vinicius Brasil

Fabiano obrigado pela resposta o meu problema é que o 'Valor' é variável que vou trazer da tabela 2, mesmo assim o comando acima não funcionou, quero dizer na minha ignorância o from deu erro:

UPDATE a SET a.coluna = b.coluna
FROM TABELA1 a
INNER JOIN TABELA2 B
ON A.CODIGO = B.CODIGO
Responder

Gostei + 0

16/07/2014

Vinicius Brasil

Pessoal consegui!

Obrigado pela ajuda!!!!

update tabela1 t1
set t1.campo = ( select t2.campo_origem
from tabela2 t2
where t1.chave = tabela2.chave
AND ROWNUM = 1
)
where EXISTS ( select 1
from tabela2 t2
where t1.chave = tabela2.chave
);

Pena que vou ficar sem aprender cursor rs..
Responder

Gostei + 0

25/07/2014

Marisiana Battistella

Mas por que vai ficar sem aprender cursor?
Você pode aprender aplicando em outras situações...
Responder

Gostei + 0

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

Aceitar