Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Tutoriales / Fragmentos / Oracle / Encontrar el primer numero en un varchar en PL\SQL

Encontrar el primer numero en un varchar en PL\SQL

Luis del Valle Hernández

El siguiente fragmento de código de PL\SQL soluciona tanto encontrar el primer numero en un varchar como cualquier carácter. Partimos del siguiente supuesto:

En un campo de una tabla tengo direcciones que se componen del nombre de la calle, numero, portal, escalera… mi problema reside en que quiero quedarme solo con el nombre de la calle. Comprobado que todos mis registros tienen el siguiente formato: NOMBRE_CALLE (con espacios) + espacio + NUM_PORTAL + RESTO. La solución a mi problema es encontrar el primer número de cada campo y quedarme con el inicio del campo hasta ese primer número.

3select nombre_call
  from mi_tabla;

NOMBRE_CALL
----------------------------------------
FUENTE DE LA SALUD 5 
LAS CHAJURDAS 79 B 
EL HIGUERAL 27 B 
CANTO DE LA VIRGEN 2 
LAS PARRAS 64 
LA DEHESA 2 
TOMAS RUBIÑOS 13 
SANCHO DAVILA 0 
LAS POZAS 56 1 1 C

Para realizarlo voy a utilizar las expresiones regulares con la función REGEXP_INSTR (Función que permite determinar la posición de inicio de un patrón específico en una cadena de caracteres). Utilizando la expresión regular [0-9] (Cualquier digito) esta función me devolverá la posición iniciar del primer dígito que encuentre.

select nombre_call_tasa, regexp_instr(nombre_call_tasa,'[0-9]') as posicion
from acontreras.ktmp_2015_20400_01_15


NOMBRE_CALL              POSICION
----------------------------------------------------------
FUENTE DE LA SALUD 5     20
LAS CHAJURDAS 79 B       15
EL HIGUERAL 27 B         13
CANTO DE LA VIRGEN 2     20
LAS PARRAS 64            12
LA DEHESA 2              11
TOMAS RUBIÑOS 13         15
SANCHO DAVILA 0          15
LAS POZAS 56 1 1 C       11

Con esto ya solucionamos el problema, creamos un campo nuevo donde vamos a guardar solo el nombre de la calle y le metemos el resultado:

Update mi_tabla k set
    nombre_call_2 = regexp_replace(nombre_call, '[0-9]', '#');

Y ya tenemos el resultado deseado:

select nombre_call, nombre_call_2
  from mi_tabla;

NOMBRE_CALL             NOMBRE_CALL_2
----------------------------------------
FUENTE DE LA SALUD 5    FUENTE DE LA SALUD
LAS CHAJURDAS 79 B      LAS CHAJURDAS
EL HIGUERAL 27 B        EL HIGUERAL
CANTO DE LA VIRGEN 2    CANTO DE LA VIRGEN
LAS PARRAS 64           LAS PARRAS
LA DEHESA 2             LA DEHESA
TOMAS RUBIÑOS 13        TOMAS RUBIÑOS
SANCHO DAVILA 0         SANCHO DAVILA
LAS POZAS 56 1 1 C      LAS POZAS

Enlaces de interés:
• Reference Oracle

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

broadlink home assistant

Broadlink Home Assistant con HAIR: mandos por infrarrojos sin YAML

Llegas a casa con el emisor Broadlink Home Assistant nuevecito. Lo sacas de la caja con toda la ilusión del mundo para integrar el ventilador del … [+ info...]

NUKI SMART LOCK

Nuki Smart Lock Go, Pro o Ultra: cuál comprar y la prueba que lo decide todo

Mira chapapote, imagina la cara de tonto que se te queda cuando te gastas casi 350 pavos en una cerradura inteligente Nuki, llega a casa, la abres con … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.