web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Microsoft SQL Arithmet...
Power Apps
Answered

Microsoft SQL Arithmetic overflow error

(0) ShareShare
ReportReport
Posted on by 59

Hi @RandyHayes 

 

When I save a record  with a number text input that has 6 digits or more I get an error message:

Microsoft SQL Arithmetic overflow error converting numeric to data type.

 

The Char on SQL is 50. so I have not exceeded the character limit. 

 

any ideas?

I have the same question (0)
  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @s1hl3_ukuvuma 

    Can you provide the formula that is causing the error, or some screenshots to see what is going on?

  • s1hl3_ukuvuma Profile Picture
    59 on at

    @RandyHayes  see attached

    sql error.PNG
  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @s1hl3_ukuvuma 

    Your problem is that you are trying to convert a text value into a value to then have it convert back to a character value for the field.

    Remove the Value function from around the TotalCapexAmount_value.Text and try it again. There is no need (from what I see) to do that conversion. 

  • s1hl3_ukuvuma Profile Picture
    59 on at

    @RandyHayes  The conversion is needed as when i remove the value conversion, it says the value not a text is expected.

     

    remember that it works, and only returns the error when I exceeed 5 digits but it accepts anything less.

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @s1hl3_ukuvuma 

    So then your TotalCapexAmount_value is defined as numeric and not text...that's fine.  How is that field defined exactly in the DB?  

    The Value function does have a maximum and then it starts to round up and down, but from a character perspective, that is about 16 characters - so, that's not where the problem is coming from.

  • David Jennaway Profile Picture
    716 on at

    It sounds like you need to increase the precision of the data-type in SQL. In SQL, numeric (and decimal) data types have a definable precision (total number of digits, including decimal places) and scale (number of decimal places) - see this

  • Verified answer
    seadude Profile Picture
    1,855 on at

    Hi @s1hl3_ukuvuma , @RandyHayes and @DavidJennaway ,

    I received this error as well.

    • Appears to be a new issue.
      • I've used SQL Server pretty extensively and have not faced an issue before when wrapping a Text field in Value().
    • ONLY happens when app is used on iPhone. Does NOT happen when Patch is executed in PowerApps editor (in browser on laptop)

    image.png

    Here's how I fixed it:

    Existing SQL:

     

    -- Create a new table called 'mobileAssets' in schema 'dbo'
    -- Drop the table if it already exists
    IF OBJECT_ID('dbo.mobileAssets', 'U') IS NOT NULL
    DROP TABLE dbo.mobileAssets
    GO
    -- Create the table in the specified schema
    CREATE TABLE dbo.mobileAssets
    (
    	 Id INT NOT NULL IDENTITY (1,1) PRIMARY KEY, -- primary key column
    	 ForeignId NVARCHAR(50),
     column1 [DECIMAL](8,6),
    	 column2 [DECIMAL](9,6),
    	 column3 [DECIMAL](8,6),
    	 column4 [DECIMAL](7,3),
    	 column5 DATETIME2
    );

     

     Non-working Code:

     

    Set(varNow,Now());
    Patch('[dbo].[testTable]',
     Defaults('[dbo].[testTable]'),
     {
     Id: "test",
     column1: Value(column1.Text),
     column2: Value(column2.Text),
     column3: Value(column3.Text),
     column4: Value(column4.Text),
     column5: DateTimeValue(Text(varNow, "[$-en-US]yyyy-mm-ddThh:mm:ss:f"))
     }
    )

     

    Working Code: Notice how I had to match the SQL data types with the Text() function. Had to put the correct number of chars before and after the decimal point, for each column.

     

    Set(varNow,Now());
    Patch('[dbo].[testTable]',
     Defaults('[dbo].[testTable]'),
     {
     Id: "test",
     column1: Value(Text(column1.Text, "[$-en-US]##.######")),
     column2: Value(Text(column2.Text, "[$-en-US]###.######")),
     column3: Value(Text(column3.Text, "[$-en-US]##.######")),
     column4: Value(Text(column4.Text, "[$-en-US]##.#####")),
     column5: DateTimeValue(Text(varNow, "[$-en-US]yyyy-mm-ddThh:mm:ss:f"))
     }
    )

     

     Hope this helps!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 505

#2
WarrenBelz Profile Picture

WarrenBelz 502 Most Valuable Professional

#3
Haque Profile Picture

Haque 324

Last 30 days Overall leaderboard