PARCEAR O DIVIDIR UNA CADENA
Publicado por Alejandro (10 intervenciones) el 29/10/2018 13:57:11
Hola expertos. Favor me pueden ayudar con este requerimiento.
Necesito parcelar un cadena que contiene una declaración DML y la necesito parcelar en 4 columnas
(SELEC, JOIN , WHERE , GROUP BY) esta declaración es variable es decir el SELECT no sera siempre el mismo sino dependerá de la solicitud del usuario.
Les adjunto mi código de prueba
select
regexp_replace('select campo1,campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','from[^A-Z].*','' )lv_select,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','from[^w]*') lv_join,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','where.*') lv_where,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','group[A-Z]*.*') lv_group
from dual;
En el JOIN y WHERE he tenido dificultadas, con el código que actualmente obtengo el Join funciona parcialmente, ya que si existiera una tabla que comience con W dejaría de funcionar
Necesito llegar a lo siguiente
JOIN: Comienza desde el FROM hasta la palabra WHERE
WHERE: Desde la palabra WHERE hasta la palabra GROUP BY
Desde ya les agradezco su colaboración y apoyo. Muchas Gracias a todos.
Necesito parcelar un cadena que contiene una declaración DML y la necesito parcelar en 4 columnas
(SELEC, JOIN , WHERE , GROUP BY) esta declaración es variable es decir el SELECT no sera siempre el mismo sino dependerá de la solicitud del usuario.
Les adjunto mi código de prueba
select
regexp_replace('select campo1,campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','from[^A-Z].*','' )lv_select,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','from[^w]*') lv_join,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','where.*') lv_where,
regexp_substr('select campo1, campo2, etc from tab1 join tab2 where campo1 = campo2 group by campo1,campo2','group[A-Z]*.*') lv_group
from dual;
En el JOIN y WHERE he tenido dificultadas, con el código que actualmente obtengo el Join funciona parcialmente, ya que si existiera una tabla que comience con W dejaría de funcionar
Necesito llegar a lo siguiente
JOIN: Comienza desde el FROM hasta la palabra WHERE
WHERE: Desde la palabra WHERE hasta la palabra GROUP BY
Desde ya les agradezco su colaboración y apoyo. Muchas Gracias a todos.
Valora esta pregunta


0