Descripción: Sobreescribe parte de una cadena alfanumérica con parte de otra cadena alfanumérica. Por defecto, la cantidad de caracteres removidos de la cadena destino es igual a la longitud de la cadena reemplazante. Si se usa el opcional cuarto argumento, la cantidad puede ser diferente.

Tipo de resultado: Varchar o Blog

Sintaxis:

OVERLAY(cadena_alfanumérica PLACING reemplazo FROM posición [FOR longitud])

  • Esta función soporta BLOBS de cualquier longitud
  • Si cadena_alfanumérica o reemplazo es un BLOB, el resultado es un BLOB. En los demás casos el resultado es un Varchar(n) donde n es la suma de las longitudes de cadena_alfanumérica y reemplazo.
  • Como es usual en las funciones SQL, posición tiene base 1
  • Si posición es mayor que la longitud de cadena_alfanumérica entonces reemplazo es colocado a continuación de la cadena_alfanumérica
  • Si la cantidad de caracteres entre posición y el final de la cadena_alfanumérica es menor que la longitud de reemplazo (o que el argumento longitud, si está presente), cadena_alfanumérica es truncada a posición y reemplazo es localizado a continuación.
  • El efecto de una clásula “FOR 0” es que reemplazo es simplemente insertado en cadena_alfanumérica
  • Si cualquiera de los argumentos es NULL, el resultado es NULL
  • Si posición o longitud no son números enteros entonces el “redondeo de los banqueros” (redondeo al par más próximo) es usado: 0.5 se convierte en 0, 1.5 se convierte en 2, 2.5 se convierte en 2, 3.5 se convierte en 4, etc.

Ejemplos:

SELECT
   OVERLAY('NAPOLEÓN' PLACING 'GATO' FROM 5)
FROM
   RDB$DATABASE

* Devolverá NAPOGATO

SELECT
   OVERLAY('NAPOLEÓN' PLACING 'TIGRE' FROM 5)
FROM
   RDB$DATABASE

* Devolverá NAPOTIGRE

SELECT
   OVERLAY('NAPOLEÓN' PLACING 'CASI' FROM 1)
FROM
   RDB$DATABASE

* Devolverá CASILEÓN

.