After testing I found that it was not the decimal place that was causing the problem, it was the precision (10)
This doesn’t work: Arithmetic overflow error converting varchar to data type numeric.
DECLARE @TestConvert VARCHAR(MAX) = '123456789.12343594'
SELECT CAST(@TestConvert AS DECIMAL(10, 4))
This worked
DECLARE @TestConvert VARCHAR(MAX) = '123456789.12343594'
SELECT CAST(@TestConvert AS DECIMAL(13, 4))
Should be like 9 int + 4 floating = 13 chars