none
Correção de nomes sem acento RRS feed

  • Pergunta

  • Estou fazendo uma correção em uns nomes de documentos que vêm sem acento ou sem "ç" e aí eu fiz um pequeno código pra testar que ficou assim (faltam outras regras para colocar):

    select *, 
    (CASE 
    WHEN nome_final like '%CAO %' THEN REPLACE(SUBSTRING(nome_final, 1,100),'CAO', 'ÇÃO') 
    WHEN nome_final like '%COES %' THEN REPLACE(SUBSTRING(nome_final, 1,100),'COES', 'ÇÕES') 
    REPLACE(SUBSTRING(nome_final, 1,100),'ARIA', 'ÁRIA') 
    WHEN nome_final like '%SSAO%' THEN REPLACE(SUBSTRING(nome_final, 1,100),'SSAO', 'SSÃO') 
    
    else '' END) as novo_nome 
    
    from tabela_nomes

    Alguns nomes foram corrigidos como:

    nome_final, novo_nome
    X CONSTRUCOES, X CONSTRUÇÕES
    Y IMOBILIARIA , Y IMOBILIÁRIA
    porém quando aparecia 2 "erros" no mesmo nome o código só corrige o primeiro exemplo:

    nome_final, novo_nome
    Z CONSTRUCOES E IMOBILIARIA, Z CONSTRUÇÕES E IMOBILIARIA

    Existe alguma forma de fazer a consulta para que as correções sejam feitas em sequência?

    quarta-feira, 8 de janeiro de 2020 14:22

Respostas

Todas as Respostas

  • Deleted
    quarta-feira, 8 de janeiro de 2020 15:12
  • Colega,

    Então, dizer que existe algo padronizado ou criado especificamente para este tipo de procedimento estarei mentindo, mas uma possibilidade que poderíamos pensar, seria fazer uma select neste tabela de nomes que você esta utilizando, armazenar todos os nomes sem acentuação em uma outra tabela, com base, nesta outra tabela, vamos realizando uma leitura para cada nome armazenado e atualizando a tabela correta.

    Gostaria de entender este seu questionamento: "Existe alguma forma de fazer a consulta para que as correções sejam feitas em sequência?"

    Perguntas:

    1 - Estes nomes será atualizados ou somente a "alteração" consiste em apresentar de forma correta em tela?

    2 - Você tem ideia de quantos nomes se encontram sem acentuação?

    Há um bom tempo fui um trabalhar similar em uma empresa aqui na região para um antigo ERP, fizemos justamente este procedimento de "Name Discovery", ou seja, descobrir os nomes sem acentos, cadastrar em uma outra tabela auxiliar e ir atualizando toda cadastro de clientes e fornecedores. O volume de dados não era muito grande, 2 milhões de clientes e 2000 fornecedores.

    Tivemos sucesso neste procedimento.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 8 de janeiro de 2020 15:18
  • Deleted
    quarta-feira, 8 de janeiro de 2020 15:26
  • Deleted
    quarta-feira, 8 de janeiro de 2020 16:19
  • Colega,

    Então, dizer que existe algo padronizado ou criado especificamente para este tipo de procedimento estarei mentindo, mas uma possibilidade que poderíamos pensar, seria fazer uma select neste tabela de nomes que você esta utilizando, armazenar todos os nomes sem acentuação em uma outra tabela, com base, nesta outra tabela, vamos realizando uma leitura para cada nome armazenado e atualizando a tabela correta.

    Gostaria de entender este seu questionamento: "Existe alguma forma de fazer a consulta para que as correções sejam feitas em sequência?"

    Perguntas:

    1 - Estes nomes será atualizados ou somente a "alteração" consiste em apresentar de forma correta em tela?

    2 - Você tem ideia de quantos nomes se encontram sem acentuação?

    Há um bom tempo fui um trabalhar similar em uma empresa aqui na região para um antigo ERP, fizemos justamente este procedimento de "Name Discovery", ou seja, descobrir os nomes sem acentos, cadastrar em uma outra tabela auxiliar e ir atualizando toda cadastro de clientes e fornecedores. O volume de dados não era muito grande, 2 milhões de clientes e 2000 fornecedores.

    Tivemos sucesso neste procedimento.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Acho que não formulei bem a pergunta, mas o que eu estava questionando era sobre padronizar mais de uma palavra em cada linha, porque meu código só padronizava o primeiro caso.
    1 - os nomes serão atualizados
    2 - creio que em torno de no máximo 50 palavras, porque a maioria se repete bastante. E o volume de dados é pequeno 3000 nomes
    quarta-feira, 8 de janeiro de 2020 17:06
  • Deleted
    • Marcado como Resposta 19507894 quinta-feira, 9 de janeiro de 2020 16:22
    quarta-feira, 8 de janeiro de 2020 18:50
  • Colega,

    Então, dizer que existe algo padronizado ou criado especificamente para este tipo de procedimento estarei mentindo, mas uma possibilidade que poderíamos pensar, seria fazer uma select neste tabela de nomes que você esta utilizando, armazenar todos os nomes sem acentuação em uma outra tabela, com base, nesta outra tabela, vamos realizando uma leitura para cada nome armazenado e atualizando a tabela correta.

    Gostaria de entender este seu questionamento: "Existe alguma forma de fazer a consulta para que as correções sejam feitas em sequência?"

    Perguntas:

    1 - Estes nomes será atualizados ou somente a "alteração" consiste em apresentar de forma correta em tela?

    2 - Você tem ideia de quantos nomes se encontram sem acentuação?

    Há um bom tempo fui um trabalhar similar em uma empresa aqui na região para um antigo ERP, fizemos justamente este procedimento de "Name Discovery", ou seja, descobrir os nomes sem acentos, cadastrar em uma outra tabela auxiliar e ir atualizando toda cadastro de clientes e fornecedores. O volume de dados não era muito grande, 2 milhões de clientes e 2000 fornecedores.

    Tivemos sucesso neste procedimento.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Acho que não formulei bem a pergunta, mas o que eu estava questionando era sobre padronizar mais de uma palavra em cada linha, porque meu código só padronizava o primeiro caso.
    1 - os nomes serão atualizados
    2 - creio que em torno de no máximo 50 palavras, porque a maioria se repete bastante. E o volume de dados é pequeno 3000 nomes

    Colega,

    Ok, foi o que eu imagenei, acredito que o exemplo de código apresentado pelo outro argumentador vai te ajudar.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 8 de janeiro de 2020 19:47