Función escalar RTRIM

La función RTRIM elimina los caracteres especificados desde el final de una serie.

La función RTRIM elimina los caracteres contenidos en una expresión de ajusta del final de una expresión de serie. La búsqueda de caracteres compara la representación binaria de cada carácter (que consta de uno o más bytes) en la serie de ajuste para la representación binaria de cada carácter (que consta de uno o más bytes) al final de una expresión de serie. La clasificación de base de datos no afecta a la búsqueda. Si la expresión de serie se define como FOR BIT DATA o es un tipo binario, la búsqueda compara cada byte de la expresión de recorte con el byte al final de la expresión de serie.

Read syntax diagramSkip visual syntax diagramRTRIM( string-expression ,trim-expression )

El esquema es SYSIBM. (La versión SYSFUN de esta función que utiliza un único parámetro sigue estando disponible con el soporte para los argumentos CLOB).

expresión-serie
Expresión que especifica la serie fuente.
  • Si sólo se especifica un argumento, la expresión debe devolver una serie de caracteres incorporada, una serie gráfica, una serie binaria, un valor CLOB o DBCLOB, un valor booleano, un valor numérico o un valor de fecha y hora. Si el valor es:
    • No un valor CHAR, VARCHAR, GRAPHIC, VARGRAPHIC, BINARY, VARBINARY o DBCLOB, se convierte de forma implícita a VARCHAR antes de evaluar la función
    • Un valor DBCLOB, se convierte de forma implícita en VARGRAPHIC antes de evaluar la función.
    El tipo de datos de la expresión de serie no puede ser BLOB (SQLSTATE 42815).
  • Si se especifican ambos argumentos, la expresión debe devolver una serie de caracteres incorporada, valor booleano, valor numérico o valor de fecha y hora. Si el tipo de datos del valor expresión-serie no es un tipo de datos de serie, el valor se convierte implícitamente en VARCHAR antes de evaluarse la función. La longitud real de un valor CLOB tiene como limitación el tamaño máximo de un tipo de datos VARCHAR (SQLSTATE 22001). La longitud real de un valor BLOB está limitada al tamaño máximo de un tipo de datos VARBINARY (SQLSTATE 22001). La longitud real de un valor DBCLOB tiene como limitación el tamaño máximo de un tipo de datos VARGRAPHIC (SQLSTATE 22001).
expresión-ajuste
Una expresión que especifica los caracteres que se están eliminando del final de una expresión-serie. La expresión debe ser un valor que sea de un tipo de datos de serie de caracteres, numérico o de fecha y hora incorporado.
  • Si el tipo de datos de la expresión-ajuste no es una serie, el valor se convierte implícitamente en VARCHAR antes de evaluarse la función.
  • Si el tipo de datos de la expresión-ajuste es un CLOB, entonces la longitud real del valor tiene como limitación el tamaño máximo de un VARCHAR (SQLSTATE 22001).
  • Si el tipo de datos de la expresión-ajuste es un DBCLOB, entonces la longitud real del valor tiene como limitación el tamaño máximo de un VARGRAPHIC (SQLSTATE 22001).
  • Si el tipo de datos de la expresión-ajuste es un BLOB, entonces la longitud real del valor está limitada al tamaño máximo de un VARBINARY (SQLSTATE 22001).
  • Si la expresión-serie se ha definido como FOR BIT DATA, la expresión-ajuste no puede definirse como FOR BIT DATA (SQLSTATE 42815).
Cuando no se especifica una expresión-ajuste, el tipo de datos de la expresión-serie determina el valor predeterminado utilizado:
  • Un blanco de doble byte si expresión-serie es una serie gráfica de una base de datos DBCS o EUC.
  • Un blanco UCS-2 si la expresión-serie es una serie gráfica de una base de datos Unicode.
  • Un valor X'20' si la expresión-serie es una serie FOR BIT DATA.
  • Un valor de X'00' si la expresión-serie es una serie binaria
  • Un blanco de un sólo byte para todos los demás casos.

Los valores de la expresión-serie y la expresión-ajuste deben ser tipos de datos compatibles. Si uno de estos argumentos es una serie de caracteres FOR BIT DATA, el otro argumento no puede ser una serie gráfica (SQLSTATE 42846). Una combinación de argumentos de serie de caracteres y de serie gráfica sólo puede utilizarse en una base de datos Unicode (SQLSTATE 42815).

Result

El tipo de datos del resultado depende del tipo de datos de la expresión-serie.
  • VARCHAR si el tipo de datos es VARCHAR o CHAR.
  • CLOB si el tipo de datos es CLOB.
  • VARBINARY si el tipo de datos es VARBINARY o BINARY
  • BLOB si el tipo de datos es BLOB
  • VARGRAPHIC si el tipo de datos es VARGRAPHIC o GRAPHIC.
  • DBCLOB si el tipo de datos es DBCLOB.

El atributo de longitud del tipo de datos del resultado es el mismo que el atributo de longitud del tipo de datos de la expresión-serie.

La longitud real del resultado para series de caracteres o binarias es la longitud de expresión-serie menos el número de unidades de serie eliminadas. La longitud real del resultado para las series gráficas es la longitud de la expresión-serie menos el número de unidades de serie eliminadas. Si se eliminan todos los caracteres, el resultado es una serie vacía de longitud cero.

Si cualquiera de los argumentos puede ser nulo, el resultado puede ser nulo; si alguno de los argumentos es nulo, el resultado es el valor NULL.

ejemplos

  • Ejemplo 1: Utilice la función RTRIM cuando la variable del lenguaje principal HELLO se ha definido como CHAR(6) y tiene un valor 'Hello '.
       VALUES RTRIM(:HELLO)
    El resultado es 'Hello'. Cuando no se ha especificado una expresión-ajuste, sólo se eliminan los blancos. La variable del lenguaje principal se ha declarado como CHAR(9) y se rellena con blancos hasta los 9 bytes.
  • Ejemplo 2: Utilice la función RTRIM para eliminar los caracteres especificados en la expresión-ajuste desde el final de la expresión-serie.
       VALUES RTRIM('...$VAR$...', '$.')
    El resultado es '...$VAR'.
  • Ejemplo 3: Utilice la función RTRIM para eliminar los caracteres especificados en la expresión-ajuste desde el final de la expresión-serie.
       VALUES RTRIM('((-78.0) )', '-0. ()')
    El resultado es '((-78'. Cuando se eliminan caracteres y espacios en blanco, debe incluir un espacio en blanco en la expresión-ajuste.