› Fóruns › SQL e PL/SQL › Update no Oracle › Update no Oracle
Não entendi se você está fazendo um join entre duas tabelas distintas ou se é um self-join. Se for self join não precisa nada disso, é só dar o update direto…
Daqui para baixo assumo que são tabelas distintas.
Você não pode botar from em comando de update. Se quiser setar os valores no mesmo comando terá de ser em sub-queries depois do ‘=’ mas não fica eficiente.
Particularmente, acho que eu usaria um merge com when matched dando update. Dá uma olhanda na sintaxe no link abaixo.
Não precisa de cláusula WHERE? Vai dar update em todas as linhas da sua tabela onde houver correspondência do join (ou match)?
Exemplo:
MERGE INTO tabela1 B
USING (SELECT * FROM TABELA2) A
ON (A.CODPROD = B.CODPROD)
WHEN MATCHED THEN UPDATE SET
B.PESOBRUTO = A.PESOBRUTO,
B.CODAUXILIAR = A.EAN13,
B.LARGURAM3 = A.LARGURAM3,
B.ALTURAM3 = A.ALTURAM3,
B.COMPRIMENTOM3 = A.COMPRIMENTOM3,
B.CODAUXILIAR2 = A.DUN14,
B.LARGURAARM = A.LARGURAARM,
B.COMPRIMENTOARM = A.COMPRIMENTOARM,
B.ALTURAARM = A.ALTURAARM
http://download.oracle.com/docs/cd/E118 … SQLRF01606