替换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)