Saltar al contenido

Extraer número de string con la función de Oracle

Tenemos el arreglo a esta impedimento, al menos eso pensamos. Si sigues con preguntas coméntalo, que para nosotros será un gusto ayudarte

Solución:

usarías REGEXP_REPLACE para eliminar todos los caracteres que no sean dígitos de un string:

select regexp_replace(column_name, '[^0-9]', '')
from mytable;

o

select regexp_replace(column_name, '[^[:digit:]]', '')
from mytable;

Por supuesto que puedes escribir una función. extract_number. Sin embargo, parece un poco exagerado escribir una función que consiste en una sola llamada de función.

create function extract_number(in_number varchar2) return varchar2 is
begin
  return regexp_replace(in_number, '[^[:digit:]]', '');
end; 

Puedes usar expresiones regulares para extraer el número de string. Vamos a comprobarlo. Supongamos que este es el string mezclando texto y números ‘stack12345overflow569’. Este debería funcionar:

select regexp_replace('stack12345overflow569', '[[:alpha:]]|_') as numbers from dual;

que devolverá “12345569”.

También puedes usar este:

select regexp_replace('stack12345overflow569', '[^0-9]', '') as numbers,
       regexp_replace('Stack12345OverFlow569', '[^a-z and ^A-Z]', '') as characters
from dual

que devolverá “12345569” para números y “StackOverFlow” para caracteres.

Recuerda dar recomendación a esta división si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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