![](/img/trans.png)
[英]Arithmetic overflow error converting varchar to data type numeric in SQL Server
[英]Arithmatic overflow error converting varchar to data type numeric in sql server
我正在嘗試將數據從一個表插入到另一個表,但是我們面臨的問題是它給我們帶來了錯誤
Numeric value out of range: 8115 [Microsoft][ODBC Driver 11 for SQL Server][SQL Server ]Arithmetic overflow error converting varchar to data type numeric. (SQLExecDirect[8115] at /builddir /build/BUILD/php-5.6.30/ext/pdo_odbc/odbc_driver.c:247)
我們正在使用下面的查詢來插入數據
`INSERT INTO template_150 ([ClientName],[LOB],[PharmacyTotalClaimAmt])
SELECT PharmacyID,ProductIDNDC
, REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(decimal(10,2),CONVERT(varchar(10),CONVERT(varchar(10),LEFT
(SUBSTRING(REPLACE(TRIM(IngredCost),'\',''), PATINDEX('%[0-9.-]%',REPLACE(TRIM(IngredCost),'\','')),
8000),PATINDEX('%[^0-9.-]%', SUBSTRING(REPLACE(TRIM(IngredCost),'\',''), PATINDEX('%[0-9.-]%',REPLACE
(TRIM(IngredCost),'\','')), 8000) + 'X') -1)) )
),'"',''),'$',''),',',''),'-','') AS [TRIM(IngredCost)]
FROM file_5979bd211a3a9`
我找到了一些解決方案,可以在where條件下使用WHERE LEN(IngredCost )<=13
函數,但是如果我們將使用此函數,那么我們將無法插入表file_5979bd211a3a9
所有記錄,我們想保存的所有記錄表file_5979bd211a3a9
,任何人都可以給我們解決方案,我們如何解決此錯誤?
您正在將10個字符的數字轉換為DECIMAL(10,2)
。 這意味着整個部分最多8位數字,小數部分最多2位數字。 如果整個數字中有8個以上的數字,則不能將其轉換為DECIMAL(10,2)
。
例如:
select convert(decimal(10,2),'1000000000')
嘗試DECIMAL(12,2)
或使用VARCHAR(8)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.