Función REPLACE en Oracle

La función REPLACE en Oracle es una herramienta esencial para manipular cadenas de texto, permitiendo reemplazar todas las ocurrencias de una subcadena específica dentro de una cadena por otra subcadena. Su flexibilidad la hace ideal para limpiar, formatear o modificar datos textuales directamente en consultas SQL, simplificando tareas comunes en la gestión de datos.

Lo interesante de la función REPLACE es que puede trabajar tanto con valores literales como con datos almacenados en columnas de una tabla. Si no se proporciona una subcadena de reemplazo, la función eliminará la subcadena especificada de la cadena original, lo que amplía aún más sus posibilidades.

En los siguientes apartados, primero explicaré la sintaxis básica de esta función para que entiendas cómo utilizarla correctamente. Posteriormente, incluiré ejemplos prácticos que ilustran su uso en escenarios comunes, como la normalización de datos, la eliminación de caracteres no deseados y el ajuste de valores en aplicaciones empresariales.

Para más detalles sobre su uso, puedes consultar la documentación oficial de ORACLE sobre REPLACE.

Versión

Este artículo ha sido redactado utilizando la versión Oracle Database 23ai para garantizar compatibilidad y precisión en los ejemplos presentados.

Sintaxis

Escribe la siguiente sintaxis para utilizar la función REPLACE en Oracle:

REPLACE ( cadena, patrón_de_busqueda
                 [, cadena_remplazo]
               )
  • REPLACE: nombre de la función.
  • cadena: es la cadena de entrada para buscar el patrón.
  • patrón_de_busqueda: es una subcadena que se va a reemplazar.
  • cadena_remplazo: Es la cuerda de reemplazo.

Ejemplos

Reemplazar caracteres específicos

SELECT
    REPLACE ('En MiguelTroyano.com hay cientos de articulos', 'M', 'm') RESULTADO
FROM 
    dual;

En este ejemplo utilizamos la función replace para sustituir la letra M en mayúsculas por la letra m en minúsculas.

Eliminar una subcadena sin reemplazarla por otra

SELECT
    REPLACE('Miguel Troyano', 'Miguel') AS TEXTO_ELIMINADO
FROM
    DUAL;

Como no se especifica una subcadena de reemplazo, la función elimina 'Miguel' de la cadena original.

Reemplazar una subcadena específica en una cadena

SELECT
    REPLACE('Miguel Troyano', 'Troyano', 'Redondo') AS TEXTO_REEMPLAZADO
FROM
    DUAL;

La función reemplaza la subcadena 'Troyano' en el texto original por 'Redondo'.

Reemplazar múltiples palabras en un texto

SELECT
    REPLACE(
        REPLACE('Oracle es fantastico', 'Oracle', 'SQL'),
        'fantastico',
        'versatil'
    ) AS REPLACED_TEXT
FROM
    DUAL;

Se aplican dos funciones REPLACE anidadas para reemplazar 'Oracle' por 'SQL' y 'fantastico' por 'versatil'

Escribir un comentario