Ir para conteúdo

POWERED BY:

Arquivado

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

GugaJedi

Select + Rotina de Correção

Recommended Posts

Olá à todos, sou novo aqui neste forum, e estou atrás de uma informação que não fui capaz de achar sozinho no Google, talvez porque eu não esteja conseguindo pesquisar de forma correta ou também por não saber por que nome pesquisar, mas bem, vamos ao que interessa.

 

Tenho um problema na minha base de cadastro de mercadoria que é alimentado por um aplicativo terceiro que é de outro país e executa uma tradução automática no nome dos itens antes de preparar a carga para alimentar a minha base. Quando estas mercadorias chegam à minha base, elas chegam com caracteres especiais. Bom eu preciso saber como filtrar estas mercadorias na minha base e depois de filtrar vou criar um fluxo que substitua estes caracteres.

 

Bom, estou tentando localizar mercadorias que contenham o caracter ? de ponta cabeça, que ocorre quando o sistema tradutor não encontra a letra para traduzir, este erro me gera problema na emissão de NFe com a mercadoria que possuir este caracter. A select que montei esta da seguinte forma:

 

select descricao from tab_mercadoria where cod_loja = 542 and descricao like '%¿%';

 

Mas nunca traz nada, esta correto utilizar o like nesta instrução, porque ele não faz a busca. Se eu coloco uma letra comum ali como um A ou B também não filtra nada.

 

O banco de dados é Oracle 10G Enterprise e esta instalado sobre Windows 2003 Server.

 

Outra dúvida que tenho é como saber em que linguagem esta configurado o banco de dados? Existe no Oracle um comando semelhante ao do MSSQL que exibe em que linguem e versão o Banco esta?

 

Desde já obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tiver o GRANT faça

 

SELECT *
FROM V$PARAMETER
WHERE Lower(DESCRIPTION) LIKE '%language%'

 

Testei aqui localizar um ¿ e não tive problemas.

 

¿ Qué pasa ?

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tiver o GRANT faça

 

SELECT *
FROM V$PARAMETER
WHERE Lower(DESCRIPTION) LIKE '%language%'

 

Testei aqui localizar um ¿ e não tive problemas.

 

¿ Qué pasa ?

 

:)

 

Pode me mostrar como você montou o Select? O meu esta correto. Como eu posso criar um JOB que execute uma correção ou seja, uma substituição destes caracteres toda noite no Banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensaria uma trigger que operasse um translate na string.

 

Veja um exemplo.

 

Algo +ou- assim

 

 

CREATE OR REPLACE TRIGGER TR_TABELA1 BEFORE INSERT OU UPDATE ON TABELA1
DECLARE 

BEGIN
 :NEW.CAMPO1 := TRANSLATE(:NEW.CAMPO1,'¿?<>','    ');--troca os caracters por brancos
END;

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.