zjcxc(邹建)的ntext字段的替换处理示例
下面是邹建给出的存储过程:
--ntext字段的替换处理示例--全表替换
--测试数据
create table test(id varchar(3),txt ntext)
insert into test
select '1 ', 'abc我是中a国人
deaf;sdakj21432
我要处理中文 '
go
--定义替换的字符串
declare @s_str varchar(8000),@r_str varchar(8000)
select @s_str= '
' --要替换的字符串
,@r_str= ' <P> ' --替换成的字符串
--替换处理
declare @id int,@ptr varbinary(16)
declare @start int,@s nvarchar(4000),@len int
declare @s_str1 nvarchar(4000),@s_len int,@i int,@step int
select @s_str1=reverse(@s_str),@s_len=len(@s_str)
,@step=case when len(@r_str)> len(@s_str)
then 4000/len(@r_str)*len(@s_str)
else 4000 end
declare tb cursor local for
select id,start=charindex(@s_str,[txt])-1
from [test]
where charindex(@s_str,[txt])> 0
--这里可以定义要处理的记录的条件
open tb
fetch tb into @id,@start
while @@fetch_status=0
begin
select @ptr=textptr([txt])
,@s=substring([txt],@start+1,@step)
from [test]
where id=@id
while len(@s)> =@s_len
begin &nbs