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
 |