原因:在數據查詢中replace函數無法對錶table中text/ntext類型的欄位colname進行了字元串操作。 解決方法:將text當作varchar(實際內容長度低於8000位元組時)或把ntext當作nvarchar(實際內容長度低於4000位元組時)。 但是當text欄位內容長度超過800 ...
原因:在數據查詢中replace函數無法對錶table中text/ntext類型的欄位colname進行了字元串操作。
解決方法:將text當作varchar(實際內容長度低於8000位元組時)或把ntext當作nvarchar(實際內容長度低於4000位元組時)。
但是當text欄位內容長度超過8000或ntext欄位內容長度超過4000位元組時多出的位元組會被截斷而忽略掉。
這時我們可以使用max類型來解決這個問題。
原報錯代碼:
1 |
update tablename set colname= replace (colname, 'oldtext' , 'newtext' );
|
修改後可執行代碼:
1 |
update tablename set colname= replace ( Cast (colname as varchar (8000)), 'oldtext' , 'newtext' );
|
1 |
update tablename set colname= replace ( Cast (colname as nvarchar(4000)), 'oldtext' , 'newtext' );
|