当前位置: 代码迷 >> ASP.NET >> 替换ntext字段里面的连接,该怎么处理
  详细解决方案

替换ntext字段里面的连接,该怎么处理

热度:4584   发布时间:2013-02-25 00:00:00.0
替换ntext字段里面的连接
表名:refurbish

字段:refurbish_subject   (ntext类型)

因为这个字段里面保存很多连接。我现在想把连接替换掉,但是总报这个错误:
服务器:   消息   8116,级别   16,状态   1,行   1
函数   replace   的参数   1   的数据类型   ntext   无效。

求高手指点


语句如下:
update   refurbish   set   refurbish_subject   =   replace(refurbish_subject, ' <a   href=/zs/zs-detail.asp?id= ', ' ')

在说明一下 <a   href=/zs/zs-detail.asp?id=   这后面是一些可以变的ID号,我想问一下这个这么用正则替换~~~




------解决方案--------------------------------------------------------
update refurbish set refurbish_subject = replace(Convert(varchar(1000),refurbish_subject), ' <a href=/zs/zs-detail.asp?id= ', ' ')
------解决方案--------------------------------------------------------
text/ntext不能用replace直接替换

你可以抽出数据到程序 当字符串处理后 再update回去

------解决方案--------------------------------------------------------
先转成varchar类型,或用cast也可以的

update refurbish set refurbish_subject = replace(cast(refurbish_subject as varchar(1000))), ' <a href=/zs/zs-detail.asp?id= ', ' ')

------解决方案--------------------------------------------------------
update refurbish
set refurbish_subject = replace(cast(refurbish_subject as varchar(1000)), ' <a href=/zs/zs-detail.asp?id= ', ' ')

楼上的多了一个 )
------解决方案--------------------------------------------------------
额外写个程序在外面替换了再写回去比较稳妥
------解决方案--------------------------------------------------------
我测试过

update refurbish
set refurbish_subject = replace(cast(refurbish_subject as varchar(1000)), ' <a href=/zs/zs-detail.asp?id= ', ' ')

这个可以更新成功
------解决方案--------------------------------------------------------
如果效率要求不高

update refurbish
set 新字段 = substring(refurbish_subject,PATINDEX( '%?id=% ',refurbish_subject) + 4,PATINDEX( '%> % ',refurbish_subject) - PATINDEX( '%?id=% ',refurbish_subject) - 4)
  相关解决方案