OVRLAY: Cómo recubrir una cadena de caracteres

Cómo:

Lenguajes disponibles: informes

La función OVRLAY recubre una cadena de caracteres base con una subcadena. La función permite modificar una parte del campo alfanumérico sin reemplazarlo en su totalidad.

Existe una versión de la función OVRLAY que sólo está disponible en el lenguaje Maintain. Para más información acerca de esta función, consulte OVRLAY: Cómo superponer una cadena de caracteres (Maintain).


Principio de página

x
Sintaxis: Cómo Recubrir una cadena de caracteres
OVRLAY(source_string, length, substring, sublen, position, output)

donde:

source_string

Alfanumérico

Es la cadena de caracteres base.

stringlen

Número entero

Es el número de caracteres en source_string y output, o un campo que contenga la longitud. Si el argumento es menor o igual que 0, puede obtener resultados impredecibles.

substring

Alfanumérico

Es la subcadena que se va a superponer sobre source_string.

sublen

Número entero

Es el número de caracteres en substring o un campo que contenga la longitud. Si este argumento es menor o igual que 0, la función devuelve espacios.

position

Número entero

Es la posición de source_string en que comienza la superposición. Si este argumento es menor o igual que 0, la función devuelve espacios. Si el argumento es más largo que stringlen, la función devuelve la cadena de origen.

output

Alfanumérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas. Si la cadena recubierta es más larga que el campo de salida, la cadena queda truncada para que encaje en el campo.

Tenga en cuenta que si la cadena superpuesta es más larga que el campo de salida, la cadena queda truncada para que encaje con el campo.



Ejemplo: Cómo reemplazar caracteres de una cadena de caracteres

OVRLAY reemplaza los tres últimos caracteres de EMP_ID con CURR_JOB para crear un nuevo código de identificación de seguridad y guarda los resultados en NEW_ID:

TABLE FILE EMPLOYEE
PRINT EMP_ID AND CURR_JOBCODE AND COMPUTE
NEW_ID/A9 = OVRLAY(EMP_ID, 9, CURR_JOBCODE, 3, 7, NEW_ID);
BY LAST_NAME BY FIRST_NAME
WHERE DEPARTMENT EQ 'MIS';
END

La salida es:

LAST_NAME        FIRST_NAME  EMP_ID     CURR_JOBCODE  NEW_ID
---------        ----------  ------     ------------  ------
BLACKWOOD        ROSEMARIE   326179357  B04           326179B04
CROSS            BARBARA     818692173  A17           818692A17
GREENSPAN        MARY        543729165  A07           543729A07
JONES            DIANE       117593129  B03           117593B03
MCCOY            JOHN        219984371  B02           219984B02
SMITH            MARY        112847612  B14           112847B14

WebFOCUS