Oracle - Extraer parte de una cadena

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 11 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Extraer parte de una cadena

Publicado por Alexander (4 intervenciones) el 22/02/2021 15:40:32
Buenos días, por favor me ayudan indicándome como logro extraer de una cadena de texto a partir de que encuentre la siguiente palabra ZAC- O HAC-, y hasta que encuentre un espacio o termine la línea. Por ejemplo:

TRUNK 8021Q HAC-NEI.NEIVACENTRO-CP1 GE0/18/0 PI269 - TSO4913
TRUNK 8021Q HAC-BOG.QUIRIGUA-CP1
TRUNK 8021Q HAC-MED.ESTADIO-CP1 GE0/9/0 - TSO1534 (P001392)
TRUNK 8021Q HAC-BOG.CALLEJA-CP1
TRUNK 8021Q ZAC-VIL.VILLAVICENCIOCENTRO-CP1 GE1/19/1 - TTU3579

y me tiene que quedar

HAC-NEI.NEIVACENTRO-CP1
HAC-BOG.QUIRIGUA-CP1
HAC-MED.ESTADIO-CP1
HAC-BOG.CALLEJA-CP1
ZAC-VIL.VILLAVICENCIOCENTRO-CP1

De antemano muchas gracias por cualquier ayuda que me puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 117
Bronce
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Extraer parte de una cadena

Publicado por gilman (43 intervenciones) el 22/02/2021 17:00:58
Utiliza las funciones:
1
2
INSTR(char1, char2 [,n [,m]])
SUBSTR(char, m [, n])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 11 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Extraer parte de una cadena

Publicado por Alexander (4 intervenciones) el 22/02/2021 17:20:32
Hola gilman, gracias por tu comentario, estoy utilizando el siguiente codigo, pero no he logrado que me lo extraiga hasta que encuentre el espacio.

SELECT
REGEXP_SUBSTR('TRUNK 8021Q HAC-NEI.NEIVACENTRO-CP1 GE0/18/0 PI269 - TSO4913' ,
'HAC-([[:alnum:]]+.+\s?+[^ ])') "REGEXP_SUBSTR"
FROM DUAL;

RESULTADO

HAC-NEI.NEIVACENTRO-CP1 GE0/18/0 PI269 - TSO4913
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 11 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Extraer parte de una cadena

Publicado por Alexander (4 intervenciones) el 22/02/2021 17:50:13
Buenos días, ya lo logre solucionar, por si a alguien le sirve lo hice de la siguiente manera.

SELECT
REGEXP_SUBSTR('TRUNK 8021Q PYMES HAC-MED.SANDIEGO-CP1 GE0/9/0 - TSO1542 (P001392)' ,
'HAC-+\S*') "REGEXPR_SUBSTR"
FROM dual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar