English

Error: Underlying DBMS error [[Microsoft][SQL Native Client 10.0][Server] Arithmetic overflow error converting float to data type numeric

Error Message

There are certain workflows when working with with SQL Server that involve importing or loading shapefiles into enterprise geodatabases, where the following error may be returned if there are DOUBLE fields present in the data being loaded:

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

Cause

This error is due to how SQL Server loads or converts data fields of type FLOAT or DOUBLE, particularly in situations where the fields have a low precision. These rules are not upheld in shapefile data structures and therefore, if the data present exceeds the precision or scale limits imposed upon data load into SQL Server, the above error is returned.

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.

Solution or Workaround

Manually edit or raise the precision level of the enterprise feature class to accommodate the data being loaded.

  1. Create a new feature class in the enterprise or SDE geodatabase used for loading the shapefile.
    • Right-click the database or dataset > New > Feature Class.
  2. Import the coordinate system for the new feature class from the shapefile. Additionally, import the fields from the shapefile into the new feature class. Click Next.
    The New Feature Class window, with a chosen coordinate system highlighted.
  3. Accept the tolerance and configuration keywords, unless using custom settings. Click Next.
  4. Import the fields from the shapefile.
    The New Feature Class window, with the applicable fields listed from the shapefile.
Note:
The default precision values for DOUBLE fields are 0.
  1. Under the Field Properties section, edit all precision values for all DOUBLEĀ fields to the necessary maximum values for data (to a maximum of 38).
    The New Feature Class window, with the field precision property having been changed to 38.
  2. Once the precision values have been updated, click Finish.
  3. Right-click the newly created feature class from the Table of Contents. Select Load > Load Data.
  4. Reference the shapefile in the input data, and click Add to list the source data to the load. Use the default settings for the rest, and proceed to load the data.

Related Information