Expert

Q:

18-41.

Check the center.sf file on this book’s web page for a suggested function.

Q:

18-42.

Check the betwnstr.sql file on the book’s web page for a possible solution.

Q:

18-43.

Here’s a suggested function:


/* Filename on web page: betwnstr.sql */
CREATE OR REPLACE FUNCTION betwnstr (
                           str IN VARCHAR2,
                           start_str IN VARCHAR2,
                           end_str IN VARCHAR2 := NULL )
                    RETURN VARCHAR2 IS

  -- This function returns the characters in str that occur between
  -- the end of start_str and the beginning of end_str.
  --
  -- If start_str does not occur in str or it occurs after end_str
  -- then NULL will be returned.

BEGIN
  /*
    || If start_str does occur in str then perform a substring with the
    || following values :
    ||
    ||    Start Point = location of start_str + length of start_str
    ||    Length      = location of end_str - Start Point
    ||
    || Not that if end_str is NULL the natural behaviour
    || of SUBSTR will return all
    || characters after start_str
  */
  IF INSTR(str,start_str,1,1) > 0 THEN
    RETURN(SUBSTR(str,INSTR(str,start_str,1,1) + LENGTH(start_str),
         INSTR(str,end_str,1,1) -
       ( INSTR(str,start_str,1,1) + LENGTH(start_str))));
  ELSE
    RETURN(str);
  END IF;

END;

Q:

18-44.

This function trims a pattern:

 /* Filename on web page: trim.sf ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.