sql ntext数据类型字符替换实现代码

2022-05-24 0 789

复制代码 代码如下:

—ntext数据类型字符替换

create table tt

(

sid INT IDENTITY(1,1),

cont ntext

)

go

insert into tt(cont) values(N’fd sad fdsa 涂聚文工团 缔友计算机信息技术有限公司 可能性 桔柑 ‘)

go

update tt set cont=’fd sad fdsa 涂聚文工团 可能性 缔友计算机信息技术有限公司 桔柑 ‘ where sid=1

–去空格

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

–sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

GO

DECLARE @ptrval binary(16),@i int,@k int,@f int

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(SPACE(1),cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f 1 null

if @k=@i

break

else

set @k=@k+1

continue

end

GO

–sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘false’

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘false’

GO

SELECT * FROM tt

—换英文字母

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

GO

DECLARE @ptrval binary(16),@i int,@k int,@f int

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(‘sad’,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f 3 ‘ggg’

if @k=@i

break

else

set @k=@k+1

continue

end

GO

SELECT * FROM tt

—中文字母

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

GO

DECLARE @ptrval binary(16),@i int,@k int,@f int

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(‘涂聚文’,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f 6 ‘涂斯博’

if @k=@i

break

else

set @k=@k+1

continue

end

GO

SELECT * FROM tt

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

GO

DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int

set @change=N’sad’ –要替换的字符

–set @len=datalength(@change)

set @len=len(@change)

set @newstr=N’ggg’ –替换成的字符

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(@change,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f @len @newstr

if @k=@i

break

else

set @k=@k+1

continue

end

GO

SELECT * FROM tt

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

GO

DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int

set @change=N’涂聚文’ –要替换的字符

–set @len=datalength(@change) –用此会出错

set @len=len(@change)

set @newstr=N’涂斯博’ –替换成的字符

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(@change,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f @len @newstr

if @k=@i

break

else

set @k=@k+1

continue

end

GO

SELECT * FROM tt

update tt set cont=’fd sad fdsa 涂聚文工团 可能性 缔友计算机信息技术有限公司 桔柑 ‘ where sid=1

select datalength(‘涂聚文’)

select len(‘涂聚文’)

select datalength(‘sad’)

select len(‘sad’)

select len(SPACE(1))

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int

set @change=N’涂聚文’ –要替换的字符

–set @len=datalength(@change) –用此会出错

set @len=len(@change)

set @newstr=N’涂斯博’ –替换成的字符

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(@change,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f @len @newstr

if @k=@i

break

else

set @k=@k+1

continue

end

GO

EXEC sp_dboption ‘pubs’, ‘select into/bulkcopy’, ‘true’

DECLARE @ptrval binary(16),@i int,@k int,@f int,@change nvarchar(20),@newstr nvarchar(20),@len int

set @change=N’涂聚文’ –要替换的字符

–set @len=datalength(@change) –用此会出错

set @len=len(@change)

set @newstr=N’涂斯博’ –替换成的字符

select @i=datalength(cont) from tt where sid=1

set @k=1

while @i>1

begin

select @f=CHARINDEX(@change,cont) from tt where sid=1 —SPACE(1)

set @f=@f-1

SELECT @ptrval = TEXTPTR(cont) FROM tt WHERE sid=1

if @f>0

UPDATETEXT tt.cont @ptrval @f @len @newstr

if @k=@i

break

else

set @k=@k+1

continue

end

GO

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql sql ntext数据类型字符替换实现代码 https://www.niceym.com/60340.html