A Simple PL/SQL Tokenizer

DECLARE
   tokenString      VARCHAR2 (256) := ‘Jim,Jerry,Jordan’;
   tokenLength      NUMBER := 0;
   tokenDelimiter   VARCHAR2 (1) := ‘,’;
   tokenChar        VARCHAR2 (1) := ”;
   tokenIzed        VARCHAR (30) := ”;
BEGIN
   SELECT LENGTH (tokenString) INTO tokenLength FROM DUAL;

   FOR i IN 1 .. tokenLength
   LOOP
      SELECT SUBSTR (tokenString, i, 1) INTO tokenChar FROM DUAL;

      IF tokenChar = tokenDelimiter OR i = tokenLength
      THEN
         IF i = tokenLength
         THEN
            tokenIzed := tokenIzed || tokenChar;
         END IF;
          –> DO YOUR INTERESTING STUFF HERE
         DBMS_OUTPUT.PUT_LINE (tokenIzed);
         tokenIzed := ”;
      ELSE
         tokenIzed := tokenIzed || tokenChar;
      END IF;
   END LOOP;
END;

Comments are closed.