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

2つのデータ型で検証する問題を確認しました

  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 に答える