pears.MakeHTMLReadable

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

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 '&')
  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 &lt; with the '<' character
  SET @START = "CHARINDEX"('&lt;',@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"('&lt;',@HTMLText)
      SET @END = @START+3
      SET @LENGTH = (@End-@START)+1
    END
  -- Replace the HTML entity &gt; with the '>' character
  SET @START = "CHARINDEX"('&gt;',@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"('&gt;',@HTMLText)
      SET @END = @START+3
      SET @LENGTH = (@End-@START)+1
    END
  -- Replace the HTML entity &amp; with the '&' character
  SET @START = "CHARINDEX"('&amp;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;amp;',@HTMLText)
      SET @END = @START+4
      SET @LENGTH = (@End-@START)+1
    END
  -- Replace the HTML entity &nbsp; with the ' ' character
  SET @START = "CHARINDEX"('&nbsp;',@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"('&nbsp;',@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
  • database/functions/pears_makehtmlreadable.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1