Constantes
Una constante (también llamada literal ) especifica un valor. Las constantes se clasifican como constantes nulas, constantes de serie, constantes numéricas o constantes de fecha y hora. Las constantes numéricas pueden clasificarse en categorías menores, como entero, coma flotante, decimal o coma flotante decimal. Las constantes de serie se distribuyen en las categorías de carácter, gráfica o binaria.
Todas las constantes, excepto las constantes nulas, tienen el atributo NOT NULL. Se ignora el signo negativo en una constante numérica con valor cero.
Las constantes, excepto las constantes nulas, tienen un tipo de datos integrado. Por lo tanto, una operación que implique una constante y un tipo distinto requiere que el tipo distinto se convierta al tipo de datos incorporado de la constante o que la constante se convierta al tipo distinto. Por ejemplo, consulte Comparaciones de tipos definidos por el usuario, que contiene un ejemplo de tipos de datos de conversión para comparar una constante con un tipo distinto.
Constantes nulas (NULL)
Una constante nula indica el valor nulo.
La constante NULL no tiene tipo de datos. El tipo de datos de la palabra clave NULL viene dado por el contexto en el que se utiliza, o puede utilizar CAST para asignar un tipo de datos.
Constantes enteras
Una constante entera especifica un entero en forma de número, con signo o sin signo, con un máximo de 19 dígitos que no incluye ninguna coma decimal.
El tipo de datos de una constante entera es entero grande si su valor está comprendido en el rango de un entero grande. El tipo de datos de una constante entera es un entero grande si su valor está fuera del rango de un entero grande, pero dentro del rango de un entero grande. Una constante definida fuera del rango de valores enteros superior se considera una constante decimal.
Por ejemplo, los siguientes valores son constantes enteras:
64 -15 +100 32767 720176
En los diagramas de sintaxis, el término entero se utiliza para una constante entera grande que no debe incluir un signo.
Constantes de coma flotante
Una constante de punto flotante especifica un número de punto flotante de doble precisión como dos números separados por una E.
El primer número puede incluir un signo y un punto decimal. El segundo número puede incluir un signo, pero no un punto decimal. El valor de la constante es el producto del primer número y la potencia de 10 especificada por el segundo número. Debe estar dentro del rango de números de punto flotante. El número de caracteres de la constante no debe exceder de 30. Excluyendo los ceros a la izquierda, el número de dígitos del primer número no debe exceder de 17 y el número de dígitos del segundo no debe exceder de 2.
15E1 2.E5 -2.2E-1 +5.E+2Constantes decimales
Una constante decimal es un número con o sin signo de no más de 31 dígitos y que incluye un punto decimal o no está dentro del rango de los números enteros binarios.
La precisión es el número total de dígitos, incluidos los que puedan haber a la derecha del punto decimal. El total incluye todos los ceros iniciales y finales. La escala es el número de dígitos a la derecha del punto decimal, incluidos los ceros finales.
La precisión es el número total de dígitos, incluidos los que puedan haber a la derecha del punto decimal. El total incluye todos los ceros iniciales y finales. La escala es el número de dígitos a la derecha del punto decimal, incluidos los ceros finales.
025.50 1000. -15. +375893333333333333333.33Constante decimal de punto flotante
Una constante decimal de punto flotante especifica un número decimal de punto flotante como dos números separados por una E. El primer número puede incluir un signo y un punto decimal. El segundo número puede incluir un signo, pero no un punto decimal.
El valor de la constante es el producto del primer número y la potencia de 10 especificada por el segundo número. El valor debe estar dentro del rango de DECFLOAT(34). El número de caracteres de la constante no debe exceder de 42. Excluyendo los ceros a la izquierda, el número de dígitos del primer número no debe exceder de 34 y el número de dígitos del segundo número no debe exceder de 4.
Una constante que se especifica como dos números separados por una E es una constante decimal de coma flotante solo si el valor está fuera del rango de una constante de coma flotante. Una constante que se especifica como un número que no contiene una E y tiene más de 31 dígitos, también es una constante decimal de punto flotante.
Además de las constantes numéricas, se pueden utilizar los siguientes valores especiales para especificar valores decimales de coma flotante:
- INF o INFINITY: representa el infinito
- NAN: representa un número no asignado (not a number)
- SNAN: representa la señalización de no-número
Los valores especiales pueden ser cualquier combinación de letras mayúsculas o minúsculas y pueden ir precedidos de un signo operativo (+ o -).
SNAN da como resultado una advertencia o excepción cuando se utiliza en una operación numérica; NAN no. SNAN se puede utilizar en operaciones no numéricas sin que se produzca una advertencia o excepción. Por ejemplo, SNAN puede utilizarse en la lista VALUES de una operación de inserción o como una constante utilizada en una comparación en un predicado.
Cuando los valores especiales se utilizan en un predicado, se aplica el siguiente orden de prioridad:
-NAN < -SNAN < -INFINITY < -0 < 0 < INFINITY < SNAN < NAN
123456789012345678E0 SNAN -INFINITYCuando uno de los valores especiales se utiliza en un contexto en el que podría interpretarse como un identificador, como el nombre de una columna, convierta una cadena constante que represente el valor especial a coma flotante decimal.
CAST ('snan' AS DECFLOAT)
CAST ('INF' AS DECFLOAT)
CAST ('Nan' AS DECFLOAT)
Constantes de series de caracteres
Una constante de serie de caracteres especifica una serie de caracteres de longitud variable. Una constante de cadena de caracteres tiene una de las dos formas siguientes:
- Secuencia de caracteres que comienza y termina con un delimitador de cadena, que puede ser un apóstrofo (') o un comilla ("). Para conocer los factores que determinan cuál es aplicable, consulte Apóstrofos y comillas como delimitadores de cadena. Esta forma de constante de cadena especifica la cadena de caracteres contenida entre los delimitadores de cadena. El número de bytes entre los delimitadores no debe ser superior a 32704. El límite de 32704 se refiere a la longitud (en bytes) de la representación e UTF-8 a de la cadena. Si ha generado la cadena en un CCSID distinto de UTF-8 (por ejemplo, un CCSID EBCDIC), la longitud de la representación del UTF-8 podría diferir de la longitud de la representación de la cadena en el CCSID de origen. Se utilizan dos delimitadores de serie consecutivos para representar un delimitador de serie dentro de la serie de caracteres.
- Una X seguida de una secuencia de caracteres que comienza y termina con un delimitador de cadena. Este formato de constante de serie de caracteres también se denomina constante hexadecimal. Los caracteres entre los delimitadores de serie deben ser un número par de dígitos hexadecimales. El número de dígitos hexadecimales no debe exceder 32704. Un dígito hexadecimal es un dígito o cualquiera de las letras de la A a la F. Si el parámetro del subsistema MIXED DATA (DATOS MIXTOS) está establecido en YES (SÍ), los dígitos hexadecimales de una constante hexadecimal deben especificarse en mayúsculas. De lo contrario, podría producirse un error al procesar las sentencias SQL. Bajo los convenios de notación hexadecimal, cada par de dígitos hexadecimales representa un carácter. Una constante hexadecimal le permite especificar caracteres que no tienen representación en el teclado.
Los siguientes ejemplos son cadenas de caracteres constantes. La cadena más a la derecha en el ejemplo ('') representa una constante de cadena de caracteres vacía, que es una cadena de longitud cero.
'12/14/1985' '32' 'DON''T CHANGE' X'FFFF' ''Una constante de cadena de caracteres se clasifica como datos mixtos si incluye una subcadena DBCS. En todos los demás casos, una constante de cadena de caracteres se clasifica como datos SBCS. Para obtener información sobre el CCSID que se asigna a la constante, consulte Esquema de codificación y reglas CCSID para cadenas. Una constante de cadena mixta puede continuar de una línea a la siguiente solo si la ruptura se produce entre caracteres de un solo byte. Una cadena Unicode siempre se considera mixta, independientemente del contenido de la cadena.
Para Unicode, se pueden asignar constantes de caracteres a UTF-8 y UTF-16. La forma de la constante no importa. Por lo general, las constantes de cadena de caracteres se utilizan solo con cadenas de caracteres, pero también se pueden utilizar con datos de e UTF-16 a gráfica. Sin embargo, las constantes hexadecimales son solo datos de caracteres. Por lo tanto, las constantes hexadecimales que se utilizan para insertar datos en cadenas de datos e UTF-16 es deben estar en formato UTF-8, no en formato UTF-16. Por ejemplo, si quisiera insertar el número 1 en una column UTF-16, utilizaría X'31', no X'0031'. Aunque X'0031' es un valor e UTF-16, Db2 lo trata como dos puntos de código e UTF-8 e separados. Por lo tanto, X'0031' se convertiría en X'00000031 '.
Restricciones de serie binaria
Una constante de cadena binaria especifica una cadena binaria de longitud variable.
Una constante de cadena binaria se forma especificando un BX seguido de una secuencia de caracteres que comienza y termina con un delimitador de cadena. Los caracteres entre los delimitadores de serie deben ser un número par de dígitos hexadecimales. El número de dígitos hexadecimales no debe exceder 32704.
Un dígito hexadecimal es un dígito o cualquiera de las letras de la A a la F (mayúsculas o minúsculas). Según las convenciones de la notación hexadecimal, cada par de dígitos hexadecimales representa un byte. Tenga en cuenta que esta representación es similar a la representación de la constante de caracteres que utiliza la forma X''; sin embargo, la constante de cadena binaria y la constante de cadena de caracteres no son compatibles y la forma X'' no puede utilizarse para especificar una constante de cadena binaria, al igual que la forma BX'' no puede utilizarse para especificar una constante de cadena de caracteres.
Los siguientes ejemplos son constantes de cadena binaria:
BX'0000' BX'C141C242' BX'FF00FF01FF'
Constantes de series gráficas
Una constante de la secuencia gráfica especifica una secuencia gráfica de longitud variable. Para más información, consulte Constantes de cadena gráfica.
Constantes de fecha y hora
Una constante de fecha y hora es una constante de cadena de caracteres de un formato concreto. Para más información, consulte Constantes de fecha y hora