2014-10-09 37 views
0

我收到SQL錯誤「傳遞給左或子字符串函數無效長度參數」SQL錯誤

傳遞給左或子字符串函數

,它似乎都無效的長度參數來自長度爲14個字符的返回值。

我們從飼料中獲得的有價證券的股票價值。例如,一個值如195461597.62 M我們正在修剪.62 M並乘以1000,但具有14個或更多字符的值返回傳遞給LEFT或SUBSTRING函數錯誤的無效長度參數,但如果刪除一個字符從價值來看,它運行良好。

此字段設置爲DATA_LENGTH爲100,前端應用程序的值顯示設置爲30個字符,因此不確定哪些錯誤告訴我。

這裏是我的SQL:

select udf_char15, (convert(int,(substring(ltrim(rtrim(UDF_CHAR15)),0,len(UDF_CHAR15) - 5)))*1000) 
from CSM_SECURITY_CUST 
Where UDF_CHAR15 is not null 

任何幫助表示讚賞。

+0

傳遞1到子字符串不是0 – 2014-10-09 13:42:11

回答

0

您可以使用小數位置使其長度不可知;

select cast(left(UDF_CHAR15, charindex('.', UDF_CHAR15) - 1) as int) 
+0

我不認爲小數是問題,但總長度。由於所有檢索到的數據都以.XX M結尾,我們正在修剪最後5個字符,包括小數。僅當存在9個或更多剩餘字符時纔會發生錯誤。 – user3258874 2014-10-09 16:26:17