4

我想替换表格中列的文本

我试过了:

select replace([article], '<p>&nbsp;</p>', '') from Articles

update Articles
set article = replace(article, '<p>&nbsp;</p>', '')
where article like '<p>&nbsp;</p>'

or 

UPDATE [AJA].[dbo].[Articles]
   SET [article] = ' '
 WHERE [article] = '<p>&nbsp;</p>'
GO

每次出现错误时:

参数 1 在替换中无效

它出什么问题了?

谢谢你的帮助

4

3 回答 3

6

我已经检查了您使用两种数据类型验证的问题,即

  1. ntext:在使用 ntext 时,它会抛出上述错误....查看这里

  2. varchar(max):在使用 varchar(max) 时,它是完美的工作......查看这里

因此,varchar(max)在使用 html 标签时使用数据类型......

如果要处理以前的类型,请将列类型转换为varchar

   SELECT REPLACE(CAST([article] as VARCHAR(MAX)), '<p>&nbsp;</p>', '')
   FROM Articles
于 2012-08-31T09:28:00.307 回答
3

您收到此错误是因为您有文本数据类型。使用 varchar 数据类型,您的查询可以正常工作。

您需要转换您的字段text to varchar才能使用替换功能。

Declare @mytable table
(
Article text
);

INSERT into @mytable VALUES('<p>&nbsp;</p>');
INSERT into @mytable VALUES('<p>&nbsp;</p>');
INSERT into @mytable VALUES('<p>&nbsp;</p>');
INSERT into @mytable VALUES('<b>&nbsp;</b>');


select replace(cast([article] as VARCHAR(8000)),'<p>&nbsp;</p>','')
from   @mytable
where Article LIKE '<p>&nbsp;</p>'
于 2012-08-31T09:01:05.693 回答
0

试试这个

UPDATE Articles SET article = REPLACE(article, '<p>&nbsp;</p>', '')

其他工作也同样替换。.

于 2012-08-31T09:07:46.360 回答