Función REPLACE( )

Reemplaza todas las instancias de una cadena de caracteres especificada por una nueva cadena de caracteres.

Sintaxis

REPLACE(cadena; texto_anterior; nuevo_texto)

Parámetros

Nombre Tipo Descripción
cadena

carácter

El valor en donde se reemplazan los caracteres.
texto_anterior

carácter

La cadena de caracteres para reemplazar. La búsqueda distingue entre mayúsculas y minúsculas.

texto_nuevo carácter El texto con el que se reemplaza el valor en texto_anterior.

Salida

Carácter.

Ejemplos

Ejemplos básicos

Devuelve "a12345efg":

REPLACE("abcdefg";"bcd";"12345")

Devuelve "Rd.":

REPLACE("Road";"Road";"Rd.")

Devuelve "ac":

REPLACE("abc";"b";"")

Ejemplos avanzados

Quitar los caracteres especificados

Utilice REPLACE( ) para quitar una cadena de caracteres específica de una cadena de origen, reemplazándola por una cadena de caracteres vacíos ( "" ).

Devuelve "1234 Scott":

REPLACE("1234 Scott rd."; "rd."; "")

Ajuste de longitud del campo

Si nuevo_texto ("ABC") es más extenso que texto_anterior ("X"), la longitud del campo de la cadena que se obtiene se incrementa automáticamente para que quepa el primer reemplazo:

Devuelve "9ABC9", con una longitud de campo que se incrementa de 3 a 5 caracteres:

REPLACE("9X9"; "X"; "ABC")

La longitud del campo no se incrementa automáticamente para los siguientes reemplazos y es posible que se acorte si el campo no es lo suficientemente extenso como para contener a todos los nuevos caracteres.

Devuelve "9ABC9A":

REPLACE("9X9X"; "X"; "ABC")

Para evitar el truncamiento, puede incrementar la longitud de cadena utilizando la función BLANKS( ) o espacios en blanco literales.

Devuelve "9ABC9ABC":

REPLACE("9X9X" + BLANKS(2); "X"; "ABC")
REPLACE("9X9X" + "  "; "X"; "ABC")

Si la cadena que se obtiene es más corta que cadena, la cadena que se obtiene se completa con espacios en blanco para conservar la misma longitud de campo.

Devuelve "9X9  ":

REPLACE("9ABC9"; "ABC"; "X")

Observaciones

Cómo funciona

La función REPLACE( ) reemplaza cada instancia de una cadena existente por una nueva cadena.

Devuelve "1234 Scott Road":

REPLACE("1234 Scott rd."; "rd."; "Road")

Cuándo usar REPLACE( )

Utilice REPLACE( ) para normalizar campos de datos con formatos no uniformes, tales como campos de dirección, o para reemplazar información no válida en campos incorrectamente editados. Para que operaciones tales como las pruebas de duplicados o la unión o la relación de tablas se realicen en forma adecuada, se requieren datos con un formato normalizado o estandarizado.

Coincidir mayúsc.-minúsc.

La función REPLACE( ) distingue entre mayúsculas y minúsculas. Si especifica "RD." en texto_anterior y los valores en la cadena están en minúsculas, el valor texto_nuevo no será sustituido porque no se encontrarán coincidencias.

Si existe la posibilidad de que las mayúsculas y minúsculas estén mezcladas en la cadena, primero use la función UPPER( ) para poner todos los caracteres en mayúsculas.

Devuelve "1234 SCOTT ROAD":

REPLACE(UPPER("1234 Scott rd."); "RD."; "ROAD")

Protección contra reemplazos accidentales

Al crear una expresión REPLACE( ) debe tener en cuenta todas las instancias posibles de texto_anterior en la cadena para que no se presenten reemplazos involuntarios.

Devuelve "645 RichaRoad Road", porque las dos últimas letras de "Richard" son "rd":

REPLACE("645 Richard rd  "; "rd"; "Road")

Al agregar un espacio inicial y un espacio final al valor en texto_anterior (" rd "), se evita que la función reemplace instancias en donde "rd" aparezca dentro de un nombre, dado que en estas instancias no existen espacios iniciales.

Devuelve "645 Richard Road":

REPLACE("645 Richard rd  "; " rd "; " Road")
Guía de creación de scripts de ACL 14.1