Convertir cadena de Texto en una fila SQL ordenada

Muchas veces tenemos almacenado un valor que está separado por un carácter pero en la misma variable o campo, y deseamos pasarlo a filas separado por el carácter indicado.
Para esto podemos utilizar la función de Oracle REGEXP_SUBSTR con la ayuda de la función CONNECT BY LEVEL.

Muchas veces tenemos almacenado un valor que está separado por un carácter pero en la misma variable o campo, y deseamos pasarlo a filas separado por el carácter indicado.
Para esto podemos utilizar la función de Oracle REGEXP_SUBSTR con la ayuda de la función CONNECT BY LEVEL.


Ejemplo: Se tiene una cadena con los nombres más populares de Colombia, se desea que la cadena aparezca en forma de lista.
–Cadena
Nombres := ‘Enrique,Carlos,Monica’;
–Codigo
declare
  nombres varchar2(200) := ‘Enrique,Carlos,Monica’ ;
  cursor cur_cadena_a_fila is
  SELECT REGEXP_SUBSTR(nombres, ‘[^’ || ‘,’ || ‘]+’1LEVEL) VALOR
    FROM DUAL
  CONNECT BY REGEXP_SUBSTR(nombres, ‘[^’ || ‘,’ || ‘]+’1LEVELIS NOT NULL;
begin
  for nombres in cur_cadena_a_fila loop
    dbms_output.put_line(nombres.VALOR);
  end loop;
End;




Output:

Utilizando solo el select en la cadena puede ser.
SELECT REGEXP_SUBSTR(‘Enrique,Carlos,Monica’‘[^’ || ‘,’ || ‘]+’1LEVEL) VALOR
    FROM DUAL
  CONNECT BY REGEXP_SUBSTR(‘Enrique,Carlos,Monica’‘[^’ || ‘,’ || ‘]+’1LEVELIS NOT NULL;




Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Más info

aceptar