Como excluir registros duplicados no oracle

Ao trabalhar no Oracle, você pode descobrir que alguns dos seus registros têm duplicatas. Você pode excluir essas linhas duplicadas identificando-as e usando seu endereço Rowid ou linha. Antes de começar, você deve criar uma tabela de backup caso precise referenciá-las depois de ter excluído registros.

Passos

Método 1 de 4:
Identificando sua duplicata
  1. Imagem intitulada Excluir registros duplicados no Oracle Step 1
1. Identifique a duplicata. Neste caso, identifique o exemplo duplicado, "Alan." Certifique-se de que os registros que você estão tentando excluir são realmente duplicados inserindo o SQL abaixo.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 2
    2. Identificando de uma coluna chamada "Nomes." Na instância de uma coluna nomeada "Nomes," você substituiria "nome da coluna" com nomes.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 3
    3. Identificando de outras colunas. Se você tentasse identificar a duplicata por uma coluna diferente, por exemplo, a idade de Alan em vez de seu nome, você entraria "Idades" no lugar de "nome da coluna" e assim por diante.
    Selecione Column_Name, Contagem (Column_Name) from TableGroup por Column_NameHaving Contagem (Column_Name) > 1-
  • Método 2 de 4:
    Excluindo uma única duplicata
    1. Imagem intitulada Excluir registros duplicados no Oracle Step 4
    1. Selecione "Nome dos nomes." Após "Sql," que significa linguagem de consulta padrão, insira "Selecione o nome dos nomes."
  • Imagem intitulada Excluir registros duplicados no Oracle Step 5
    2. Exclua todas as linhas com o nome duplicado. Após "Sql," entrar "Excluir de nomes onde nome = `alan`-." Observe que a capitalização é importante aqui, então isso irá excluir todas as linhas nomeadas "Alan." Após "Sql," entrar "comprometer-se."
  • Imagem intitulada Excluir registros duplicados no Oracle Step 6
    3. Locatário a linha sem uma duplicata. Agora que você excluiu todas as linhas com o nome do exemplo "Alan," Você pode inserir uma das costas entrando "Inserir em valores de nome (`Alan`)-." Após "Sql," entrar "comprometer-se" Para criar sua nova linha.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 7
    4. Veja sua nova lista. Depois de ter concluído as etapas acima, você pode verificar se não tem mais registros duplicados entrando "Selecione * De nomes."
    Sql > Selecione o nome do nome nomes ------------------------------ AlancarrietomalanRows selecionado.Sql > Excluir dos nomes onde nome = `alan`-linhas excluídas.Sql > commit-commit completo.Sql > Inserir em valores de nomes (`Alan`) - linha criada.Sql > commit-commit completo.Sql > Selecione * de nomes-nome ------------------------------ alancarrietomrows selecionado.
  • Método 3 de 4:
    Excluindo vários duplicados


    1. Imagem intitulada Excluir registros duplicados no Oracle Step 8
    1. Selecione o rowid que você deseja excluir. Após "Sql," entrar "Selecione Rowid, nome dos nomes-."
  • Imagem intitulada Excluir registros duplicados no Oracle Step 9
    2. Exclua a duplicata. Após "Sql," entrar "Excluir dos nomes um onde rowid > (selecione min (rowid) de nomes b onde b.Nome = A.nome)-" Para excluir registros duplicados.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 10
    3. Verifique as duplicatas. Depois de ter concluído o acima, comandos verifique se você ainda tem registros duplicados entrando "Selecione Rowid, nome dos nomes-" e depois "comprometer-se."
    Sql > Selecione Rowid, Nome dos nomes-rowidname ---------------------------------------- ------ aabjnsaagaaadfoaaa alanaabjnsaagaaadfoaab alanaabjnsaagaaadfoaac carriguaabjnsaagaaadfoad tomaabjnsaagaaadfoaaf alanrows selecionados.Sql > Excluir dos nomes que distante rowid > (selecione min (rowid) de nomes bwewe b.Nome = A.Nome) -Rows excluídos.Sql > Selecione Rowid, Nome dos nomes-rowidname ---------------------------------------- ------ aabjnsaagaaadfoaaa alanaabjnsaagaaadfoaac carriieaabjnsaagaAadfoad Tomrows selecionados.Sql > commit-commit completo.
  • Método 4 de 4:
    Excluindo linhas com colunas
    1. Imagem intitulada Excluir registros duplicados no Oracle Step 11
    1. Selecione suas linhas. Após "Sql," entrar "Selecione * De nomes-" Para ver suas linhas.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 12
    2. Exclua linhas duplicadas identificando sua coluna. Após "Sql `" entrar "Excluir dos nomes um onde rowid > (selecione min (rowid) de nomes b onde b.Nome = A.Nome e B.Idade = A.era)-" Para excluir os registros duplicados.
  • Imagem intitulada Excluir registros duplicados no Oracle Step 13
    3. Verifique as duplicatas. Depois de ter completado as etapas acima, insira "Selecione * De nomes-" e depois "comprometer-se" Para verificar se você excluiu os registros duplicados com sucesso.
    Sql > Selecione * De nomes-namorados ------------------------------ ---------- alan50carrie51tom52alan50Rows selecionado.Sql > Excluir dos nomes que distante rowid > (selecione min (rowid) de nomes bwewe b.Nome = A.Nomeand B.Idade = A.idade) -Row excluído.Sql > Selecione * De nomes-namoragem ------------------------------ ---------- alan50carrie51tom52rows selecionado.Sql > commit-commit completo.
  • Pontas

    Avisos

    Crie uma tabela de backup em seu próprio login que você pode usar para mostrar o que havia antes de qualquer exclusão ocorrida (caso haja alguma dúvida).
    Sql > criar tabela alan.nomes_backup como selecione * do nomes-tabela criada.
    Compartilhe na rede social:
    Semelhante