función escalar COLLATION_KEY
La función COLLATION_KEY devuelve una serie binaria de longitud variable que representa la clave de clasificación del argumento en la clasificación especificada.
El esquema es SYSIBM.
- expresión-serie
- Expresión que devuelve un carácter o una cadena gráfica que no es un LOB para el que se debe determinar la clave de intercalación. Si string-expression es una cadena de caracteres, no debe ser FOR BIT DATA. Si la expresión de cadena no está en Unicode UTF-16 (CCSID 1200), se convierte a Unicode UTF-16 antes de obtener la clave de clasificación correspondiente. La longitud de la expresión de cadena no debe exceder los 32704 bytes de la representación de la e UTF-16.
- nombre-de-la-colación
- Una constante de cadena o una variable de cadena de host que no sea una cadena binaria, CLOB o DBCLOB. collation-name especifica la intercalación que se utilizará al determinar la clave de intercalación. Si el nombre de la clasificación no es un valor EBCDIC, se convierte a EBCDIC. La longitud del nombre de la clasificación debe estar en el rango de 1 a 255 bytes de la representación EBCDIC. El valor de collation-name no distingue entre mayúsculas y minúsculas y debe ser una configuración de intercalación válida de "ruta corta" justificada a la izquierda para el parámetro CUNBOPRM_Collation_Keyword en el área CUN4BOPR. Para obtener información detallada sobre la configuración de la "ruta corta" en el parámetro CUNBOPRM_Collation_Keyword, consulte Descripción de los parámetros en el área CUNBOPRM.
El valor de la variable host no debe ser nulo. Si la variable host tiene una variable indicadora asociada, el valor de la variable indicadora no debe indicar un valor nulo. el nombre de la compilación debe estar justificado a la izquierda dentro de la variable de host. También debe rellenarse a la derecha con espacios en blanco si la longitud es menor que la de la variable anfitriona y la variable anfitriona es un tipo de datos CHAR o GRAPHIC de longitud fija.
el nombre de la compilación tiene el formato de una especificación de CUN4BOPR_Collation_Keyword. Debe especificar un valor que sea aceptable para el parámetro CUNBOPR_ z/OS® _Keyword.
La siguiente tabla enumera algunos valores admitidos:Tabla 1. Clasificación Palabras clave Referencia Nombre del atributo Clave Valores posibles Entorno local L.R.V <configuración regional> Strength S 1, 2, 3, 4, I, D Nivel de caso K X, O, D Caso_Primero C X, L, U, D Alternativo A N, S, D Variable_Top T <dígitos hexadecimales> Normalización N X, O, D Francés F X, O, D Hinayana H X, O, D La siguiente tabla describe las abreviaturas de las palabras clave de cotejo:- Abreviatura
- Definición
- D
- valor por omisión
- O
- on
- X
- desactivado
- 1
- primario
- 2
- secundario
- 3
- TERCIARIO
- 4
- cuaternario
- I
- Idéntico
- S
- cambiado
- N
- no ignorable
- L
- primero lo más bajo
- U
- superior-primero
UCA versión 4.0.1; ignora espacios, puntuación y símbolos; utiliza las convenciones lingüísticas suecas; utiliza mayúsculas al principio de la palabra; compara mayúsculas y minúsculas.'UCA400R1_AS_LSV_S3_CU'
UCA versión 4.0.1; no ignore los espacios, la puntuación y los símbolos; utilice las convenciones lingüísticas suecas; utilice primero la minúscula (o no establezca que signifique lo mismo, ya que la minúscula se utiliza en la mayoría de las configuraciones regionales como valor predeterminado); normalización activada; compare distinguiendo mayúsculas y minúsculas.'UCA400R1_AN_LSV_S3_CL_NO' - entero
- Un valor entero que especifica el atributo de longitud del resultado. Si se especifica, el valor debe ser una constante entera en el rango de 1 a 32704.Si no se especifica la longitud, el atributo de longitud del resultado se determina de la siguiente manera:
expresión-serie Atributo de longitud del resultado CHAR(n) o VARCHAR(n) MIN (VARBIN ARY(12n ), 32704) GRAPHIC(n) o VARGRAPHIC(n) MIN (VARBIN ARY(12n ), 32704) Independientemente de si se especifica la longitud, la longitud de la clave de intercalación debe ser menor o igual que el atributo de longitud del resultado. La longitud del resultado real de la clave de cotejo es aproximadamente seis veces la longitud de la expresión de cadena, donde la longitud de la expresión de cadena está en representación de bytes Unicode. Para ciertos nombres de intercalación, como " UCA410_LKO_RKR " (para intercalación coreana), el atributo de longitud predeterminado del resultado, 12n, podría no ser lo suficientemente grande y se devolverá un error. Para evitar este error, el atributo de longitud del resultado debe especificarse explícitamente con una constante mayor. Para el atributo de longitud adecuado del resultado, consulte Descripción de los parámetros en el área CUNBOPRM para obtener información sobre las consideraciones de longitud del búfer de destino para los servicios de intercalación.
El resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo.
La función COLLATION_KEY utiliza los servicios de clasificación Unicode en z/OS para devolver la clave de clasificación. Consulte Configuraciones regionales admitidas para la intercalación para obtener una lista de las versiones de intercalación admitidas.
Si los servicios de clasificación Unicode no están disponibles cuando se ejecuta la función COLLATION_KEY, se devuelve un error.
SELECT FIRSTNAME, LASTNAME
FROM DSN8C10.EMP
ORDER BY COLLATION_KEY(LASTNAME, 'UCA400R1_AS_LSV_S2'); SELECT E.WORKDEPT
FROM EMPLOYEE AS E INNER JOIN SALES AS S
ON COLLATION_KEY(E.LASTNAME, 'UCA400R1_LFR_RCA') =
COLLATION_KEY(S.SALES_PERSON, 'UCA400R1_LFR_RCA')
WHERE S.REGION = 'Quebec'; CREATE INDEX EMPLOYEE_NAME_SORT_KEY
ON EMPLOYEE (COLLATION_KEY(LASTNAME, 'UCA410_LDE', 600),
COLLATION_KEY(FIRSTNAME, 'UCA410_LDE', 600),
ID);