Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

regexp_substr within pl/sql

2745978Sep 4 2014 — edited Sep 5 2014

Table:

REFERRING_PAGESEARCH_TERM
TOYOTA.COM4RUNER;HIGHLANDER;COROLA;CAMRY;
HONDA.COMACCORD;CIVIC;PILOT
FORD.COMEXPLORER;ESCAPE SUV;MUSTANG;TAURUS

Display Output:

REFERRING_PAGESearch_termWORDS
TOYOTA.COM4RUNNER;HIGHLANDER;COROLA;CAMRY;4RUNNER;
HIGHLANDER;
COROLA;

CAMRY;

HONDAACCORD;CIVIC;PILOTACCORD;
CIVIC;
PILOT
FORD.COMEXPLORER;EXPLORER
ESCAPE SUV;
MUSTANG;
TAURUS

Dear OTN forum;

how can I construct this EXECUTE IMMEDIATE REGEXP_SUBSTR function in PL/SQL. Thanks in advance.

SET SERVEROUTPUT ON SIZE 100000;

DECLARE

     v_referring_page   dealers.referring_page%type;

     v_search_term      dealers.search_term%type;

   

CURSOR myCursor IS

      SELECT referring_page

                    ,search_term

     FROM DEALERS

     WHERE search_term IS NOT NULL

     AND TRUNC(log_date) = TO_DATE('30-JAN-14','DD-MON-YY');

     iRec     myCursor%ROWTYPE;

BEGIN

    OPEN myCursor;

    LOOP

         FETCH myCursor INTO iRec;

         EXIT WHEN myCursor%NOTFOUND;

        DBMS_OUTPUT.PUT_LINE(iRec.referring_page||'  '||iRec.search_term);

        DBMS_OUTPUT.PUT_LINE(' ');

        DBMS_OUTPUT.PUT_LINE( EXECUTE IMMEDIATE 'SELECT REGEXP_SUBSTR(iRec.search_term,''[^;]+'', 1, level) FROM DUAL

                                                        CONNECT BY REGEXP_SUBSTR(iRec.search_term,''[^;]+, 1, level) IS NOT NULL');

     END LOOP;

     CLOSE myCursor;

END;

This post has been answered by Frank Kulash on Sep 4 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 3 2014
Added on Sep 4 2014
3 comments
1,615 views