I had a stored procedure throwing the following error:
The conversion of the varchar value '9999999999' overflowed an int column.
There's two queries joined, so I split them up to see which one was throwing the error.
Neither. Of course. : - \
If you break the query apart, both halves work.
Okay, so let's figure this out:
exec sp_describe_first_result_set @tsql = N'myqueryhere'
exec sp_describe_first_result_set @tsql = N'myotherqueryhere'
Oh, hey look, varchar in one, int in the other.
Cause? My own stupidness from 7 years ago:
case when fielda is null or fielda = 0 then 0
else replace(replace(convert(varchar(14),fielda(,'.',''))
end
On one set of data, there are fields that have values, specifically the 9999999999; the second set returns nothing.
So it tries to convert to the "least" datatype, the INT, and the 9,999,999,999 is too large for INT, so it fails.
No comments:
Post a Comment