Fungsi tokenizer sering sekali digunakan , jiak kita menggunakan java fungsi itu akan relatif mudah di gunakan karena disudah disediakan oleh java, nah bagaimana kita melakukan fungsi tokenizer di oracle.
berikut ada sample procedure untuk melakukan tokenizer di oracle

The pl/sql Oracle version for the Tokenizer procedure

CREATE OR REPLACE PROCEDURE tokenizer (
         iStart     IN       NUMBER,
         sPattern   IN       VARCHAR2,
         sBuffer    IN       VARCHAR2,
         sResult    OUT      VARCHAR2,
         iNextPos   OUT      NUMBER
        )
AS
     nPos1   NUMBER;
     nPos2   NUMBER;
BEGIN
     nPos1 := INSTR (sBuffer, sPattern, iStart);
    IF nPos1 = 0
    THEN
            sResult := NULL;
    ELSE
           nPos2 := INSTR (sBuffer, sPattern, nPos1 + 1);
          IF nPos2 = 0
          THEN
                 sResult := RTRIM (LTRIM (SUBSTR (sBuffer, nPos1 + 1)));
                 iNextPos := nPos2;
          ELSE
                sResult := SUBSTR (sBuffer, nPos1 + 1, nPos2 - nPos1 - 1);
                iNextPos := nPos2;
          END IF;
     END IF;
END tokenizer;

untuk test nya gunakan script dibawah ini

– a Procedure to Test the Tokenizer

Create or Replace procedure sp_test_tokenizer
as
      sepr varchar2(1);
      sbuf varchar2(200);
      sres varchar2(200);
      pos number;
      istart number;
begin

      sbuf := ‘@0@11@222@3333@44444@555555@6666666@77777777@888888888?;
      sepr := ‘@’;
      istart := 1;
      tokenizer (istart ,sepr,sbuf,sres,pos);
      if (pos <> 0) then
          dbms_output.put_line (sres);
      end if;
     while (pos <> 0)
     loop
             istart := pos;
             tokenizer (istart ,sepr,sbuf,sres,pos );
             dbms_output.put_line (sres);
     end loop;
END sp_test_tokenizer;
/

dari SQLPLUS

SQL> set serveroutput on
SQL>exec sp_test_tokenizer;

silakan mencoba semoga bermanfaat
<sumber dari oracle.com>