Función escalar BINARY
La función BINARY devuelve una representación de serie de gráficos binarios de longitud fija de varios tipos de datos.
El esquema es SYSIBM.
- expresión-serie
- Expresión que devuelve un valor de cualquier tipo de datos de serie de caracteres, serie gráfica o serie binaria.
- entero
- Un valor de constante entera, que especifica el atributo de longitud del tipo de
datos BINARY resultante. El valor debe estar entre 1 y 255.
Si no
se especifica entero, el atributo de longitud del resultado es el menor de los valores siguientes:
- La longitud máxima para el tipo de datos BINARY
- El atributo de longitud para el tipo de datos de
expresión-serie expresado en bytes:
- El atributo de longitud, si expresión-serie es una serie binaria, una serie de caracteres que es FOR BIT DATA, o una serie de caracteres con unidades de serie de OCTETS
- El atributo de longitud multiplicado por 2, si expresión-serie es una serie gráfica con unidades de serie de CODEUNITS16 o bytes dobles
- El atributo de longitud multiplicado por 4, si expresión-serie es una serie de caracteres o una serie gráfica con unidades de serie de CODEUNITS32
Si expresión-serie es una serie vacía y el argumento entero no se especifica, se devuelve un error (SQLSTATE 42815).
El resultado de la función es un valor BINARY. Si el primer argumento puede ser nulo, el resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo.
La longitud real es la misma que el atributo de longitud del resultado. Si la longitud de expresión-serie que se convierte en una serie binaria es menor que el atributo de longitud del resultado, el resultado se rellena con ceros hexadecimales hasta la longitud del resultado. Si la longitud de expresión-serie que se convierte en una serie binaria es mayor que el atributo de longitud del resultado, se produce un truncamiento:
- El primer argumento es una serie de caracteres o gráfica (distinta de CLOB o DBCLOB) y se truncan los caracteres que no sean caracteres en blanco.
- El primer argumento es una serie binaria (distinta a BLOB) y se truncan los ceros no hexadecimales.
Ejemplos
-
La
siguiente función devuelve una serie binaria de longitud fija con un
atributo de longitud 1 y un valor BX'00'.
SELECT BINARY('',1) FROM SYSIBM.SYSDUMMY1 - La siguiente función devuelve una serie binaria de longitud fija
con un atributo de longitud 5 y un valor BX'4B42480000'.
SELECT BINARY('KBH',5) FROM SYSIBM.SYSDUMMY1 - La siguiente función devuelve una serie binaria de longitud fija
con un atributo de longitud 3 y un valor BX'4B4248'.
SELECT BINARY('KBH') FROM SYSIBM.SYSDUMMY1 - La siguiente función devuelve una serie binaria de longitud fija
con un atributo de longitud 3 y un valor BX'4B4248'.
SELECT BINARY('KBH ',3) FROM SYSIBM.SYSDUMMY1 - La siguiente función devuelve una serie binaria de longitud fija
con un atributo de longitud 3, un valor BX'4B4248' y un aviso (SQLSTATE
01004).
SELECT BINARY('KBH 93',3) FROM SYSIBM.SYSDUMMY1
