-1

間にワイルドカードを使用して、明確な開始と終了を持つパターンを検索/置換するクエリを作成しています。元の URL は次のとおりです。

  "></title><script src="http://www.weblearn.edu"></script><!--   

これは結果です:

  cript src="http://www.weblearn.edu"></script><!--  

-- これは望ましい結果です: (文字またはスペースなし)

-- どうすれば丸ごと交換できますか? ご協力いただきありがとうございます。

 SELECT 

 CASE
 WHEN PATINDEX('">%http%<!--', AcademicDishonestyDesc) > 0 THEN 
 STUFF(AcademicDishonestyDesc, PATINDEX('">%http%<!--', AcademicDishonestyDesc), LEN('">%http%<!--'), '')
 END
 FROM AMS_CoursePolicyAcademicDishonesty
 WHERE      PATINDEX('">%http%<!--', AcademicDishonestyDesc) > 0

 GO
4

1 に答える 1

0

URL を特定したので、最も安全で簡単な方法は、HTML タグから src 属性を削除することです。

UPDATE dbo.table SET column = REPLACE(column, ' src="http://...bad script..."', '');

簡単な例:

DECLARE @n TABLE (x VARCHAR(255));

INSERT @n(x) VALUES
('...><script src="http://www.weblearn.edu"></script><!--'),  
('......><script src="http://www.weblearn.edu"></script><!--'),
('..><script src="http://www.weblearn.edu"></script><!--'),
('....><script src="somethingelse"></script><!--');

UPDATE @n SET x = REPLACE(x, ' src="http://www.weblearn.edu"', '')
  WHERE x LIKE '% src="http://www.weblearn.edu"%';

SELECT x FROM @n;

結果 (空のスクリプト タグは HTML ではまったく問題ありません):

...><script></script><!--
......><script></script><!--    
..><script></script><!--  
....><script src="somethingelse"></script><!--

不正なスクリプト URL ごとに繰り返します。これがあなたの求めているものでない場合は、質問を要件で更新してください(たとえば、望ましい結果を示してください)。

于 2012-09-25T20:28:03.853 に答える