- Este tópico contém 7 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 3 meses atrás por
Girino.
-
AutorPosts
-
19 de novembro de 2009 às 10:37 pm #91022
Girino
ParticipanteOLA PESSOAL
BOA TARDE, TUDO BEM? 8)SOU NOVO POR AQUI E GOSTARIA DE UMA AJUDA SE POSSÍVEL..!! 🙄
PORQUE O UPDATE ABAIXO NÃO FUNCIONA NO ORACLE?
O QUE EU ESTOU FAZENDO DE ERRADO?UPDATE TABELA
SET PESOBRUTO = A.PESOBRUTO,
CODAUXILIAR = A.EAN13,
LARGURAM3 = A.LARGURAM3,
ALTURAM3 = A.ALTURAM3,
COMPRIMENTOM3 = A.COMPRIMENTOM3,
CODAUXILIAR2 = A.DUN14,
LARGURAARM = A.LARGURAARM,
COMPRIMENTOARM = A.COMPRIMENTOARM,
ALTURAARM = A.ALTURAARMFROM TABELA A INNER JOIN TABELA B ON A.CODPROD = B.CODPROD;
SE ALGUEMN PUDER AJUDAR..!!
MUITO OBRIGADO,
RENATO 😀
20 de novembro de 2009 às 5:30 am #91028Regis Araujo
ParticipanteOla Girino, boa noite..!
Pq vc não cria uma procedure para fazer esta atualização.. é muito mais rapido e facil…..
Abraços..!
20 de novembro de 2009 às 6:07 pm #91038Girino
ParticipanteOlá.
Pode até ser, porém eu primeiro preciso acertar o select, caso contrário a procedure não irá funcionar do mesmo jeito..!!
Muito obrigado pela atenção..!!
um abraço,
Renato
20 de novembro de 2009 às 7:25 pm #91039rwarstat
ParticipanteRenato,
Posta a estrutura das tabelas envolvidas para que a gente possa te ajudar melhor.
[]´s
Roberto20 de novembro de 2009 às 10:04 pm #91043diegolenhardt
ParticipanteDa alguma mensagem de erro? Qual?
O que mais exatamente nao da certo?
23 de novembro de 2009 às 4:58 pm #91064Girino
ParticipanteOlá, Bom Dia..!! 8)
Utilizo este script no SQL Server e funciona perfeitamente, achei que no ORACLE também desse certo.
Consigo fazer de outras maneiras, setando apenas um de cada vez, ou de outras formas, mas gostaria de fazer algo parecido com o meu script que roda no SQL Server.O erro é o seguinte: 🙄
ORA-00933: SQL Command not properly ended
Muito Obrigado pela atenção..!!
Renato 😀
24 de novembro de 2009 às 7:08 am #91073fsitja
ParticipanteNã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
24 de novembro de 2009 às 4:34 pm #91074Girino
ParticipanteOK..!! 8)
Vou fazer os testes..!! 😀
Muito Obrigado..!! 😉
Renato
-
AutorPosts
- Você deve fazer login para responder a este tópico.