Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sr.silva

Como realizar essa atualização?

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.