text 类型替换

Mapleleaf123 2011-08-24 04:31:43
这是网上找的

declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='[PAGE]' --要替换的字符串
,@d_str='[page]***[/page]'--替换成的字符串

--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(memohtml),@rplen=len(@s_str),@postion=charindex(@s_str,memohtml)-1 from [auto_news]
while @postion>0
begin
updatetext [auto_news].[memohtml] @p @postion @rplen @d_str
select @postion=charindex(@s_str,memohtml)-1 from [auto_news]
end


数据少的时候memohtml只有少数字符可以替换成功(测试的时候是一行数据)

全部替换的时候,就是提示成功,但里面的内容却没有变

数据才1万条

...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mapleleaf123 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maco_wang 的回复:]
全部替换的时候,就是提示成功,但里面的内容却没有变?
里面有你有替换的内容吗?没有的话,自然不会变。
[/Quote]

里面有数据的,也有要替换字符的标记,但就是在查询分析器执行成功后,再读出来的数据,没有替换成功
Mapleleaf123 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ssp2009 的回复:]
SQL code
update tb set 字段=cast(replace(cast(字段 as varchar(max)),'[page]','[page]***[/page]') as text)
[/Quote]

varchar(max) SQL 2005才有吧,2000好像没
Mapleleaf123 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fredrickhu 的回复:]
什么意思 ?
[/Quote]

就是执行替换后,里面的[PAGE]不变为 [page]***[/page]
叶子 2011-08-24
  • 打赏
  • 举报
回复
全部替换的时候,就是提示成功,但里面的内容却没有变?
里面有你有替换的内容吗?没有的话,自然不会变。
快溜 2011-08-24
  • 打赏
  • 举报
回复
update tb set 字段=cast(replace(cast(字段 as varchar(max)),'[page]','[page]***[/page]') as text)
--小F-- 2011-08-24
  • 打赏
  • 举报
回复
什么意思 ?

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧