El Blogcito de Ricardo Dufoo

PL/SQL «String Tokenizer»

por en Feb.15, 2011, archivado en Oracle

El término String Tokenizer viene de una clase de Java (java.util.StringTokenizer) la cual sirve para obtener los elementos de una cadena de caracteres (String) separada por un carácter delimitador (Token).

Me he topado en diferentes ocasiones con este problema en la base de datos de Oracle así que, sin meterle java (lo cual hace más lento el proceso) aquí una pequeña función que nos da el elemento de la posición n de una cadena separada por algún delimitador (pipe por defecto).

FUNCTION get_element (
      p_collection   IN   VARCHAR2,
      p_item         IN   NUMBER,
      p_delim        IN   VARCHAR2 DEFAULT '|'
   )
      RETURN VARCHAR2
   AS
      v_start_pos   NUMBER;
      v_end_pos     NUMBER;
   BEGIN
      IF p_item = 1
      THEN
         v_start_pos := 1;
      ELSE
         v_start_pos := INSTR (p_collection, p_delim, 1, p_item – 1);

         IF v_start_pos = 0
         THEN
            RETURN NULL;
         ELSE
            v_start_pos := v_start_pos + LENGTH (p_delim);
         END IF;
      END IF;

      v_end_pos := INSTR (p_collection, p_delim, v_start_pos, 1);

      IF v_end_pos = 0
      THEN
         RETURN clean (SUBSTR (p_collection, v_start_pos));
      ELSE
         RETURN clean (SUBSTR (p_collection,
                               v_start_pos,
                               v_end_pos – v_start_pos
                              )
                      );
      END IF;
   END get_element;

No hay comentarios para esta entrada...

Comentarios estan cerrados.

Busca algo?

Escriba una palabra para buscar en el sitio:

Todavia no encontrando lo que usted esta buscando? Deje un comentario y entraremos en contacto con ud, para poderlo ayudar!

Visita a nuestros amigos!

Amigos recomendados...

Archivos

Entradas, ordenadas por mes...