0
我有一個存儲過程,它創建一個xml文件。當我運行它,我得到一個錯誤轉換爲varchar值「這裏一些文字」時存儲過程中的錯誤,但手動運行時沒有錯誤
轉換失敗爲int
如果我把相同的代碼在查詢窗口在SSMS並執行,它工作正常 - 沒有錯誤。
有人可以告訴我爲什麼會發生這種情況?這個過程足夠長,可以在這裏發佈,它主要是一個有很多聯合和聯接的巨大選擇。
謝謝!
我有一個存儲過程,它創建一個xml文件。當我運行它,我得到一個錯誤轉換爲varchar值「這裏一些文字」時存儲過程中的錯誤,但手動運行時沒有錯誤
轉換失敗爲int
如果我把相同的代碼在查詢窗口在SSMS並執行,它工作正常 - 沒有錯誤。
有人可以告訴我爲什麼會發生這種情況?這個過程足夠長,可以在這裏發佈,它主要是一個有很多聯合和聯接的巨大選擇。
謝謝!
連接之一列中的某處將varchar與整數進行比較,並且至少有一個varchar值不是整數。
所以請嘗試以下測試:
select *
from table
where myCol NOT LIKE '%[^0-9]%'
也許
select *
from table
where CONVERT (bigint, myCol) NOT BETWEEN -2147483648 AND 2147483647
撼樹,看看脫落。
好像你的字符串不是有效號碼 – lordkain
的確如此,事實並非如此。但爲什麼在手動運行時不會拋出錯誤? – user6678202
錯誤信息非常清楚。你顯然使用一個字符串,並把它看作一個數字。這很可能是一種隱含的轉換。也許如果你能分享這個程序,至少我們可以提供幫助。現在,任何人都無法提供幫助。 –