Python R2


Parseo de cadena separada por coma en Oracle

Posted in Oracle por Arturo Elias Antón en 6 noviembre 2008
Tags: , , , ,

Hoy con una nota simple quiero inaugurar la sección PL/SQL.
Bueno,…
Más de una ves trabajando en Oracle nos tenemos que enfrentar con el problema de parsear una  cadena y  perdemos el tiempo en hacer una función que haga esto, ya que es un problema bastante común, pero si buscamos en las funciones de Oracle nos daremos cuenta que existe una función dentro de dbms_utility llamada comma_to_table que nos soluciona el problema 🙂

Función dbms_utility.comma_to_table:

dbms_utility.comma_to_table(
list   IN  VARCHAR2,
tablen OUT BINARY_INTEGER,
tab    OUT UNCL_ARRAY);

Un ejemplo que aclara lo que estoy diciendo de esta función podría ser:

DECLARE
cnt        BINARY_INTEGER;
my_table    dbms_utility.uncl_array ;
str VARCHAR(200);
BEGIN
    str :=  'ENERO,MARZO,ABRIL,MAYO,JUNIO';
    dbms_utility.comma_to_table(str,cnt, my_table);
    FOR i IN 1 .. my_table.count LOOP
        Dbms_output.Put_Line(my_table(i));
    END LOOP;
END;

Si la lista es numérica tendríamos que tratarla como en el siguiente ejemplo….

DECLARE
cnt        BINARY_INTEGER;
my_table    dbms_utility.uncl_array ;
str VARCHAR(200);
BEGIN
     str :=  '316,343,328,329,390,391,305,333,558';
     dbms_utility.comma_to_table(REPLACE('"'||str||'"',',','","') ,cnt, my_table);
     FOR i IN 1 .. my_table.count LOOP
         Dbms_output.Put_Line('  '||replace(my_table(i),'"',''));
     END LOOP;
END;
Anuncios

Una respuesta to 'Parseo de cadena separada por coma en Oracle'

Subscribe to comments with RSS o TrackBack to 'Parseo de cadena separada por coma en Oracle'.

  1. Marcela said,

    Muy últil, gracias por compartir esta información.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: