Сохраните CAST для переменной в SQL - PullRequest
0 голосов
/ 23 апреля 2019

Столбец в SQL имел данные в формате изображения. Я использовал CAST, и данные выкладываются в текст, и это здорово. Проблема в том, что в столбце есть теги HTML. Я пытаюсь убрать теги HTML из столбца, который был приведен.

Я создал функцию для удаления тегов HTML, но теперь мне нужно вызвать функцию для этого приведенного столбца.

/ * Преобразование изображения в текст * /

SELECT cast(cast(note as varbinary(max)) as varchar (max)) note
FROM NOTES

/ Функция HTML /

CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<',@HTMLText) SET @End = 
CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText)) 
SET @Length = (@End - @Start) + 1 WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
SET @Start = CHARINDEX('<',@HTMLText) SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END
GO

КОД ПРОБЛЕМЫ:

SELECT
       [Col1]
      ,[Col2]
      ,[Col3]
      ,[Col4]
      ,dbo.udf_StripHTML(cast(cast(note as varbinary(max)) as varchar (max)) note)
  FROM NOTES

Как вызвать функцию HTML с приведением типов?

1 Ответ

0 голосов
/ 23 апреля 2019

Я думаю, что это просто синтаксическая ошибка.Это должно работать:

SELECT
       [Col1]
      ,[Col2]
      ,[Col3]
      ,[Col4]
      ,[Note] = dbo.udf_StripHTML(cast(cast([note] as varbinary(max)) as varchar (max)))
FROM NOTES
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...