Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Articles Oracle Forms, PL/SQL, Java, J2EE

Publicité

A "StringTokenizer like" PL/SQL function

This is a small function that allows to extract tokens from a string.

CREATE OR REPLACE FUNCTION Split
(

   PC$Chaine
IN VARCHAR2,
         -- input string
   PN$Pos
IN PLS_INTEGER,
         -- token number
   PC$Sep
IN VARCHAR2 DEFAULT ','
-- separator character
)
RETURN
VARCHAR2
IS
  LC$Chaine VARCHAR2(32767) := PC$Sep || PC$Chaine
;
  LI$I      PLS_INTEGER
;
  LI$I2     PLS_INTEGER
;
BEGIN
  LI$I := INSTR( LC$Chaine, PC$Sep, 1, PN$Pos )
;
  IF LI$I > 0
THEN
    LI$I2 := INSTR( LC$Chaine, PC$Sep, 1, PN$Pos + 1)
;
    IF LI$I2 = 0 THEN LI$I2 := LENGTH( LC$Chaine ) + 1 ; END IF
;
    RETURN( SUBSTR( LC$Chaine, LI$I+1, LI$I2 - LI$I-1 ) )
;
  ELSE
    RETURN NULL
;
  END IF
;
END;

/



SQL> DECLARE
  2    LC$String  VARCHAR2(50) := 'one|two|three|four|five|six|seven' ;
  3    LC$Token
   VARCHAR2(100) ;
  4    i          PLS_INTEGER := 1 ; 
  5  BEGIN
  6    LOOP
  7      LC$Token := Split( LC$String, i , '|') ;
  8      EXIT WHEN LC$Token IS NULL ;
  9      dbms_output.put_line( LC$Token ) ;
 10      i := i + 1 ;
 11    END LOOP ;
 12  END ;
 13 
 14  /
one
two
three
four
five
six
seven

Procédure PL/SQL terminée avec succès.

SQL>

Francois

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article