sql - replace参数无效

时间:2012-08-31 08:53:46

标签: sql tsql

我想替换表格中的列文本

我试过了:

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

中无效

它出了什么问题?

感谢您的帮助

3 个答案:

答案 0 :(得分:6)

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

  1. ntext:在使用ntext时,会抛出错误....查看here

  2. varchar(max):在使用varchar(max)时,它非常适合....查看here

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

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

       SELECT REPLACE(CAST([article] as VARCHAR(MAX)), '<p>&nbsp;</p>', '')
       FROM Articles
    

答案 1 :(得分: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>'

答案 2 :(得分:0)

试试这个

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

另一方的工作也取代了。