sr.silva 1 Denunciar post Postado Abril 28, 2009 Olá! Estrutura atual e a seguinte: - Tabela...: - CodigoBarra Campos.: - ReferenciaProduto - CodigoBarra - Tabela...: - SaldoEstoque Campos.: - ReferenciaProduto - Saldo O campo SaldoEstoque.ReferenciaProduto , possue valores diferentes de CodigoBarra.ReferenciaProduto. Como assim diferentes? Ex: Uma referencia do produto XYZ: --------------- | CodigoBarra | --------------- ReferenciaProduto: 2258-6789 ----------------- | SaldoEstoque | ----------------- ReferenciaProduto: 2258 Preciso criar uma consulta para atualizar o campo SaldoEstoque.ReferenciaProduto. Poderia fazer um a um..sim! Porém tenho mais de 3000 registros :mellow: Para esse 'diversão' tenho o Oracle 9i instalado. []s Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 28, 2009 http://forum.imasters.com.br/index.php...4&hl=Update Compartilhar este post Link para o post Compartilhar em outros sites
sr.silva 1 Denunciar post Postado Abril 28, 2009 Ok! Motta, Sua resposta me ajuda em partes. A intenção justamente e de 'acertar' os valores dos campos ReferenciaProduto no intuito de executar a SQL abaixo. (select tabela1.* from tabela1,tabela2 where tabela1.chave = tabela2.chave) Porém como os valores não são iguais, a maioria dos registros não retorna. O que penso é utilizar um like, porém posso ter problemas em outros registros. Ex: Tabela: CodigoBarra Registro: 2255-7744 Tabela: SaldoEstoque Registro: 2255 Utilizando o like: "...like '%2255%' " , obtenho o registro Agora se o registro for Tabela: CodigoBarra Registro: CDB-001 Tabela: SaldoEstoque Registro: CDB 001 Utilizando o like: "...like '%CDB-%' " , sem sucesso.. :mellow: []s Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 28, 2009 Pelo que entendi não existe chave que ligue uma tabela a outra a própria chave e que deveria sofrer a correção. O que pode ser feito e usar a fucntion TRANSLATE para limpar alguns caracteres. exemplo : SELECT TRANSLATE ('ABC-123*','-*',' ') FROM DUAL TRANSLATE('ABC-123*','-*','') ----------------------------------- abc 123 Este comando faz uma de/para entre caracteres de uma string e permite uma filtragem. Mas como não existe igualdade você corre risco ao tentar uma atualização automática. Compartilhar este post Link para o post Compartilhar em outros sites
sr.silva 1 Denunciar post Postado Abril 28, 2009 ok amigo! agradeço sua resposta. acredito que com o conhecimento dessa funcão translate..eu consiga realizar minha pendencia. thanks Compartilhar este post Link para o post Compartilhar em outros sites