pears.MakeHTMLReadable
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE FUNCTION "pears"."MakeHTMLReadable"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ @HTMLText long VARCHAR,@ReplaceBR SMALLINT ) RETURNS long VARCHAR AS BEGIN DECLARE @START INTEGER DECLARE @END INTEGER DECLARE @LENGTH INTEGER -- ReplaceBR with CRLF 0 - No 1 - Yes -- Replace the HTML entity & with the '&' character (this needs to be done first, as -- '&' might be double encoded as '&amp;') SET @START = "CHARINDEX"('&',@HTMLText) SET @END = @START+4 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 = @START+4 SET @LENGTH = (@End-@START)+1 END -- Replace the HTML entity < with the '<' character SET @START = "CHARINDEX"('<',@HTMLText) SET @END = @START+3 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 = @START+3 SET @LENGTH = (@End-@START)+1 END -- Replace the HTML entity > with the '>' character SET @START = "CHARINDEX"('>',@HTMLText) SET @END = @START+3 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 = @START+3 SET @LENGTH = (@End-@START)+1 END -- Replace the HTML entity & with the '&' character SET @START = "CHARINDEX"('&amp;',@HTMLText) SET @END = @START+4 SET @LENGTH = (@End-@START)+1 while(@START > 0 AND @END > 0 AND @LENGTH > 0) BEGIN SET @HTMLText = "STUFF"(@HTMLText,@START,@LENGTH,'&') SET @START = "CHARINDEX"('&amp;',@HTMLText) SET @END = @START+4 SET @LENGTH = (@End-@START)+1 END -- Replace the HTML entity with the ' ' character SET @START = "CHARINDEX"(' ',@HTMLText) SET @END = @START+5 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 = @START+5 SET @LENGTH = (@End-@START)+1 END IF(@ReplaceBR = 1) BEGIN -- Replace any <br> tags with a newline SET @START = "CHARINDEX"('<br>',@HTMLText) SET @END = @START+3 SET @LENGTH = (@End-@START)+1 while(@START > 0 AND @END > 0 AND @LENGTH > 0) BEGIN SET @HTMLText = "STUFF"(@HTMLText,@START,@LENGTH,"CHAR"(13)+"CHAR"(10)) SET @START = "CHARINDEX"('<br>',@HTMLText) SET @END = @START+3 SET @LENGTH = (@End-@START)+1 END -- Replace any <br/> tags with a newline SET @START = "CHARINDEX"('<br/>',@HTMLText) SET @END = @START+4 SET @LENGTH = (@End-@START)+1 while(@START > 0 AND @END > 0 AND @LENGTH > 0) BEGIN SET @HTMLText = "STUFF"(@HTMLText,@START,@LENGTH,'CHAR(13) + CHAR(10)') SET @START = "CHARINDEX"('<br/>',@HTMLText) SET @END = @START+4 SET @LENGTH = (@End-@START)+1 END -- Replace any <br /> tags with a newline SET @START = "CHARINDEX"('<br />',@HTMLText) SET @END = @START+5 SET @LENGTH = (@End-@START)+1 while(@START > 0 AND @END > 0 AND @LENGTH > 0) BEGIN SET @HTMLText = "STUFF"(@HTMLText,@START,@LENGTH,'CHAR(13) + CHAR(10)') SET @START = "CHARINDEX"('<br />',@HTMLText) SET @END = @START+5 SET @LENGTH = (@End-@START)+1 END END -- Remove anything between <whatever> tags SET @START = "CHARINDEX"('<',@HTMLText) SET @END = "LOCATE"(@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 = "LOCATE"(@HTMLText,'>',"CHARINDEX"('<',@HTMLText)) SET @LENGTH = (@End-@START)+1 END RETURN "LTRIM"("RTRIM"(@HTMLText)) END