Instrução

Erro subjacente do DBMS [[Microsoft][SQL Native Client 10.0][Server] Erro de estouro aritmético ao converter valor flutuante em tipo de dados numérico

Last Published: April 23, 2024

Descrição

Há determinados fluxos de trabalho ao trabalhar com o SQL Server que envolvem a importação ou o carregamento de shapefiles em geodatabases enterprise, onde o seguinte erro pode ser retornado se houver campos DOUBLE presentes nos dados que estão sendo carregados:

Error:   
Underlying DBMS error {{Microsoft}{SQL Native Client 10.0}{Server}Arithmetic overflow error converting float to data type numeric.} {{<shapefile name>}

Causa

Esse erro ocorre devido à forma como o SQL Server carrega ou converte campos de dados do tipo FLOAT ou DOUBLE, especialmente em situações em que os campos têm baixa precisão. Essas regras não são mantidas em estruturas de dados shapefile e, portanto, se os dados presentes excederem os limites de precisão ou escala impostos ao carregamento de dados no SQL Server, o erro acima será retornado.

Note:
Precision refers to the maximum total number of decimal digits that are stored, both to the left and right of the decimal point. The precision must have a value between 1, to the maximum precision of 38. The default precision in SQL Server is set to 18. This limit can be set higher (ex: 500) in ArcCatalog; however, the DBMS limit of 38 is maintained as the highest number storage possible. For more information, please review the Microsoft documentation in the Related Information section below.

Solução ou Solução Provisória

Edite manualmente ou aumente o nível de precisão da classe de feição enterprise para acomodar os dados que estão sendo carregados.

  1. Crie uma nova classe de feição no geodatabase enterprise ou SDE utilizado para carregar o shapefile.
    • Clique com o botão direito do mouse no banco de dados ou conjunto de dados > Nova > Classe de Feição.
  2. Importe o sistema de coordenadas para a nova classe de feição do shapefile. Além disso, importe os campos do shapefile para a nova classe de feição. Clique em Avançar.
    A janela Nova Classe de Feição, com um sistema de coordenadas escolhido destacado.
  3. Aceite as palavras-chave tolerance e configuration, a menos que esteja usando configurações personalizadas. Clique em Avançar.
  4. Importe os campos do shapefile.
    A janela Nova Classe de Feição, com os campos aplicáveis listados no shapefile.
Note:
The default precision values for DOUBLE fields are 0.
  1. Na seção Propriedade de campo, edite todos os valores de precisão de todos os campos DOUBLE para os valores máximos necessários para os dados (até um máximo de 38).
    A janela Nova Classe de Feição, com a propriedade de precisão de campo alterada para 38.
  2. Depois que os valores de precisão forem atualizados, clique em Concluir.
  3. Clique com o botão direito do mouse na classe de feição recém-criada na Área de Controle. Selecione Carregar > Carregar Dados.
  4. Faça referência ao shapefile nos dados de entrada e clique em Adicionar para listar os dados de origem para a carga. Use as configurações padrão para o restante e prossiga para carregar os dados.

ID do Artigo: 000013811

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download