95 lines
3.6 KiB
Transact-SQL
95 lines
3.6 KiB
Transact-SQL
|
|
/****** Object: StoredProcedure [vefn_RemoveExtraText] ******/
|
|
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveExtraText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1)
|
|
DROP FUNCTION [vefn_RemoveExtraText];
|
|
GO
|
|
|
|
/*
|
|
select text, .dbo.vefn_RemoveExtraText(text,2,0,0) StrippedText from Contents where ContentID=373
|
|
select text, .dbo.vefn_RemoveExtraText(text,1,0,0) StrippedText from Contents where ContentID=373
|
|
select text, .dbo.vefn_RemoveExtraText(text,0,0,0) StrippedText ,.dbo.vefn_FirstLink(text,0), PATINDEX('%[' + nchar(9516) + nchar(9574) + char(21) + ']%' , text) from Contents where ContentID=373
|
|
select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,0,0)
|
|
select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,1,0)
|
|
select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,0)
|
|
select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,1)
|
|
*/
|
|
|
|
|
|
CREATE FUNCTION [dbo].[vefn_RemoveExtraText](@text nvarchar(MAX),@includeLink int, @includeRtfFormatting int , @includeSpecialCharacters int)
|
|
RETURNS varchar(MAX)
|
|
AS
|
|
BEGIN
|
|
DECLARE @index int
|
|
DECLARE @index2 int
|
|
SET @index = .dbo.vefn_FirstLink(@text,@includeLink)
|
|
while (@index != 0)
|
|
BEGIN
|
|
SET @index2 = CHARINDEX('\v0' , @text)
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index2+3,len(@text))
|
|
SET @index = .dbo.vefn_FirstLink(@text,@includeLink)
|
|
END
|
|
if(@includeRtfFormatting=0)
|
|
-- Remove Rtf Formatting
|
|
BEGIN
|
|
SET @text = Replace(@text, '\b0 ', '');
|
|
SET @text = Replace(@text, '\b ', '');
|
|
SET @text = Replace(@text, '\ul0 ', '');
|
|
SET @text = Replace(@text, '\ul ', '');
|
|
SET @text = Replace(@text, '\i0 ', '');
|
|
SET @text = Replace(@text, '\i ', '');
|
|
SET @text = Replace(@text, '\super ', '');
|
|
SET @text = Replace(@text, '\sub ', '');
|
|
SET @text = Replace(@text, '\nosupersub ', '');
|
|
SET @text = Replace(@text, '\b0', '');
|
|
SET @text = Replace(@text, '\b', '');
|
|
SET @text = Replace(@text, '\ul0', '');
|
|
SET @text = Replace(@text, '\ul', '');
|
|
SET @text = Replace(@text, '\i0', '');
|
|
SET @text = Replace(@text, '\i', '');
|
|
SET @text = Replace(@text, '\super', '');
|
|
SET @text = Replace(@text, '\sub', '');
|
|
SET @text = Replace(@text, '\nosupersub', '');
|
|
END
|
|
if(@includeSpecialCharacters=0)
|
|
-- Remove Special Characters
|
|
BEGIN
|
|
SET @index = PATINDEX('%\u[0-9]?%',@text)
|
|
while(@index != 0)
|
|
BEGIN
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text))
|
|
SET @index = PATINDEX('%\u[0-9]?%',@text)
|
|
END
|
|
SET @index = PATINDEX('%\u[0-9][0-9]?%',@text)
|
|
while(@index != 0)
|
|
BEGIN
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index+5,len(@text))
|
|
SET @index = PATINDEX('%\u[0-9][0-9]?%',@text)
|
|
END
|
|
SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text)
|
|
while(@index != 0)
|
|
BEGIN
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index+6,len(@text))
|
|
SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text)
|
|
END
|
|
SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text)
|
|
while(@index != 0)
|
|
BEGIN
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index+7,len(@text))
|
|
SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text)
|
|
END
|
|
SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text)
|
|
while(@index != 0)
|
|
BEGIN
|
|
SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text))
|
|
SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text)
|
|
END
|
|
|
|
END
|
|
RETURN @text
|
|
END
|
|
GO
|
|
-- Display the status of Proc creation
|
|
IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Succeeded'
|
|
ELSE PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Error on Creation'
|
|
GO
|