Tengo un campo tipo LONG donde se guarda una cadena que PUEDE estar sepada por comas. Esto es, puede haber estos valores:
Código:
campo
--------------------------------------------
cadena 1
cadena 2, cadena 3
cadena 4, cadena 5, cadena 6, cadena 7, ...
Intento separar las dos primeras subcadenas que estén separadas por una coma, dejando como tercer cadena lo que sobre. En concreto, necesito obtener esto como resultado:
Código:
resultado 1 | resultado 2 | resultado 3
------------+-------------+--------------
cadena 1 | |
cadena 2 | cadena 3 |
cadena 4 | cadena 5 | cadena 6, cadena 7, ...
¿Será posible?.
He intentado con SUBSTR():
Código SQL:
Ver originalSELECT SUBSTR(campo, 0, INSTR(campo, ',')-1), SUBSTR(campo, INSTR(campo, ',')-1) FROM tabla;
¿Pero cómo obtendría el resultante para seguirlo cortando?, ¿qué pasa cuando no hay más de una "subcadena"?
Igual he intentado con expresiones regultares:
Código SQL:
Ver originalSELECT REGEXP_SUBSTR(campo, '([[:alnum:]]| )*[^,]', 1, 1), REGEXP_SUBSTR(campo, '([[:alnum:]]| )*[^,]', 1, 2) FROM tabla;
¿Pero cómo digo para el tercer resultado "y todas las demás coincidencias"? ... o cuál sería la expresión regular para no contar las dos primeras coincidencias?
Esperaría resolver esto desde Oracle. Cualquier sugerencia es bienvenida.