Encontrar un campo con texto mediante expresiones regulares en Oracle

Error ORA-01722 de Oracle

error ORA-01722Cuando estás haciendo pruebas de base de datos y Oracle te devuelve el error ORA-01722, empiezas a sudar.

Dicho error es bastante genérico y puede deberse a cosas bastante dispares. Oracle no da mucha más información en su web.

En mi caso se debía a que los datos de prueba tenían texto o caracteres no numéricos en un campo que estaba intentando convertir a numérico. Además asociado a un TRIM(). Descubrí que la función TO_NUMBER() funciona de la siguiente manera en lo que respecta al tipo de valor de entrada.

Expresiones regulares para encontrar caracteres no numéricos en Oracle

En estos casos es donde las denostadas expresiones regulares vienen en nuestra ayuda. Mediante las siguientes podemos encontrar distintos tipos de caracteres alfabéticos, signos de puntuación, etc…

Encontrar registros que contienen letras en un determinado campo.

Esta es otra forma de encontrar letras, mirando si el campo es distinto en mayúsculas o minúsculas, lo que ocurre sólo en caso de encontrar letras.

La siguiente consulta busca caracteres no numéricos, incluyendo signos de puntuación. Ojo que también detecta los puntos y comas de los formatos numéricos decimales. La podemos liar si no llevamos cuidado.

Y finalmente otra consulta que encuentra espacios.

Sencillas y efectivas.

Deja un comentario

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