Sqlserver 報錯“參數數據類型 ntext/text 對於 replace 函數的參數 1 無效”的解決方案及原理分析擴展


原因:在數據查詢中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' );

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM