Oracle/PLSQL: extraer operadores aritméticos de una cadena

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: extraer operadores aritméticos de una cadena

Pregunta: Me gustaría saber cómo lidiar con este problema. Tengo un procedimiento almacenado con variables de entrada:

v_in varchar2(200);

El valor será así:

1+2*30+40

Solo necesito extraer los operadores aritméticos (+, * y +) para poder usarlos en la consulta. ¿Cómo puedo hacer esto?

Respuesta: Para extraer un operador aritmético de una variable varchar2, debe usar las funciones de traducción y REEMPLAZAR.

Por ejemplo,

TRANSLATE('1+2*30+40','01234',' ')
Result: '+* +'

REPLACE('+* +', ' ')
Result: '+*+'

Así que puedes combinar estas funciones en:

REPLACE(TRANSLATE('1+2*30+40','01234',' '), ' ')
Result: '+*+'

Obtenga más información sobre la función TRADUCIR.

Obtenga más información sobre la función REEMPLAZAR.