Pessoal, boa tarde.
Eu tenho um shape com vários pontos sobrepostos. Então, usei o ArcGIS para me indicar quais pontos estão sobrepostos. O resultado, conforme visto na imagem abaixo, é um campo com o OID do ponto (chave para que eu devolva para o banco de dados depois), OID_GIS (ID sequencial que o ArcGIS criou para identificar cada ponto, inteiro indo de um a 4763), OID_GIS_PONTO_PROXIMO (usando como base o campo OID_GIS o ArcGIS apontou para o ponto próximo, caso exista - caso não exista ponto próximo o valor nesse campo é -1) e, no último campo, a DISTANCIA_PONTO_PROXIMO (com a distância até o ponto mais próximo).
Eu preciso limpar esses dados, logo, no caso dos pontos sobrepostos, devo criar uma tabela de referência: algo do tipo OID_PONTO (original) e OID_NOVO (apontando para o ponto que deve ser considerado pois, com isso, posso ir em outras tabelas chave e mudar os OID para considerar apenas um dos OID, o OID_NOVO, por exemplo.
Meu problema é a referência circular, ou seja, o OID_GIS_PONTO_PROXIMO aponta para o OID_GIS 157 no primeiro registro. Quando eu vou para o OID_GIS 157, o OID_GIS_PONTO_PROXIMO está apontando de volta para o OID_GIS 1.
Com isso, qualquer tentativa de limpar o banco vai para o ralo, pois eu vou estar, apenas, mudando os OID de lugar, sem tirar as duplicidades.
Acredito que a imagem abaixo ajuda a explicar melhor.
Alguma sugestão sobre como fazer essa limpeza?
Em anexo a base, caso queiram verificar o que estou tentando explicar.
@tbaroni , bom dia.
Sobre referências circulares em geral, dê uma olhada neste artigo:
Caso ainda não tenha resolvido seu problema, responda aqui e eu dou uma olhada mais específica no seu caso.
Chega na tabela 02 normalmente. Usa a fórmula para alterar a coluna oid_novo: se oid_gis for menor que o odi_gis_proximos... você usa o valor da coluna oid_ponto, caso contrário mantém o que está. a mesma lógica se aplica para a outra coluna.
Oi, @tbaroni. Nos avise se você conseguiu resolver a sua questão ou se ainda precisa de ajuda. 😉