Constantes
Una constante (a veces llamada un literal) especifica un valor. Las constantes se clasifican en constantes de tipo serie y constantes numéricas. Las constantes numéricas pueden, a su vez, ser constantes enteras, de coma flotante y decimales.
Todas las constantes tienen el atributo NOT NULL.
Un valor de cero negativo en una constante numérica (-0) indica el mismo valor que un cero sin el signo (0).
SELECT * FROM CAMP_DB_ROSTER
WHERE AGE > CAST(14 AS YOUTH)
SELECT * FROM CAMP_DB_ROSTER
WHERE CAST(AGE AS INTEGER) > 14 SELECT * FROM CAMP_DB_ROSTER
WHERE AGE > 14Constantes 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 superior si su valor se encuentra fuera del rango de un entero grande, pero está comprendido en el rango de un entero superior. Una constante definida fuera del rango de valores enteros superior se considera una constante decimal.
Tenga en cuenta que la representación literal más pequeña de una contante de entero largo es -2.147.483.647 y no -2.147.483.648, que es el límite para valores enteros. De manera similar, la representación literal más pequeña de una constante de entero grande es -9.223.372.036.854.775.807 y no -9.223.372.036.854.775.808, que es el límite para valores de entero grande.
64 -15 +100 32767 720176 12345678901En
los diagramas de sintaxis, el término entero
se utiliza para
una constante de entero grande que no debe incluir un signo.
Constantes de coma flotante
Una constante de coma flotante especifica un número de coma flotante en forma de dos números separados por una E. El primer número puede incluir un signo y una coma decimal; el segundo número puede incluir un signo, pero no una coma decimal. El tipo de datos de una constante de coma flotante es de precisión doble. El valor de la constante es el producto del primer número y la potencia de 10 especificada por el segundo número; este valor debe estar dentro del rango de los números de coma flotante. El número de bytes de la constante no debe exceder de 30.
15E1 2,E5 2,2E-1 +5,E+2Constantes decimales
Una constante decimal es un número con o sin signo de 31 dígitos de longitud como máximo y que incluye una coma decimal o no está comprendido dentro del rango de enteros binarios. Debe estar comprendido en el rango de números decimales. La precisión es el número total de dígitos (incluyendo los ceros iniciales y de cola); la escala es el número de dígitos situados a la derecha de la coma decimal (incluyendo los ceros de cola).
25.5 1000. -15. +37589.3333333333Constantes de coma flotante decimal
No hay ninguna constante de coma flotante decimal excepto los valores especiales de coma flotante decimal, que se interpreta como DECFLOAT(34).
SNAN -INFINITY CAST ('snan' AS DECFLOAT)
CAST ('INF' AS DECFLOAT)
CAST ('Nan' AS DECFLOAT) Todos los valores no especiales se interpretan como constantes decimales, de coma flotante o entero, con arreglo a las normas especificadas anteriormente. Para obtener un valor de coma flotante decimal numérico, utilice la función de conversión DECFLOAT con una constante de serie de caracteres. No es recomendable utilizar constantes de coma flotante como argumentos para la función DECFLOAT, ya que la coma flotante no es exacta y el valor de coma flotante decimal puede resultar diferente de los caracteres de dígito decimales que componen el argumento. En su lugar, utilice constantes de caracteres como argumentos para la función DECFLOAT.
Por ejemplo, DECFLOAT('6.0221415E23', 34) devuelve el valor de coma flotante decimal 6.0221415E+23, pero DECFLOAT(6.0221415E23, 34) devuelve el valor de coma flotante decimal 6.0221415000000003E+23.
Constantes de series de caracteres
- Una secuencia de caracteres que empieza y termina con un delimitador de serie, que es un apóstrofo ('). El número de bytes entre los delimitadores de serie no puede ser superior a 32.672. Cuando la unidad de serie de entorno es CODEUNITS32, el número de unidades de código no puede ser mayor de 8168. Se utilizan dos delimitadores de serie consecutivos para representar un delimitador de serie en la serie de caracteres. Dos delimitadores de serie consecutivos que no están contenidos en una serie representan la serie vacía.
- X seguida de una secuencia de caracteres que empieza y termina con un delimitador de serie. 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. Los espacios en blanco entre los delimitadores de serie se ignoran. El número de dígitos hexadecimales no debe exceder los 32.672. Cuando la unidad de serie de entorno es CODEUNITS32, el número de unidades de código que representa la constante hexadecimal no puede ser mayor de 8168. Se utilizan dos delimitadores de serie consecutivos para representar un delimitador de serie en la serie de caracteres. Un dígito hexadecimal es un dígito 0 al 9 o cualquiera de las letras A a F (mayúsculas o minúsculas). Bajo los convenios de notación hexadecimal, cada par de dígitos hexadecimales representa un carácter. Este formato de constante de serie de caracteres le permite especificar caracteres que no tienen representación de teclado.
- U& seguida de una secuencia de caracteres que empieza y termina con un delimitador
de serie y que está seguida opcionalmente de la cláusula UESCAPE. Este formato de constante de serie de caracteres también se denomina constante
de serie Unicode. El número de bytes entre los delimitadores de
serie no puede ser superior a 32.672. Cuando
la unidad de serie de entorno es
CODEUNITS32,
el número de unidades de código que
representa la constante de la secuencia Unicode no puede ser mayor de 8168. La constante de serie Unicode se convierte de UTF-8 a la página de códigos de
sección durante la compilación de sentencia. Se utilizan dos delimitadores de series consecutivos
para representar un delimitador de series dentro de la serie de caracteres. Se utilizan
dos caracteres de escape de Unicode consecutivos
para representar un carácter de escape de Unicode
en la serie de caracteres, pero estos caracteres cuentan como un carácter
cuando se calculan las longitudes de las constantes de tipo carácter. Dos delimitadores
de serie consecutivos que no están contenidos en una serie
representan la serie vacía. Dado que un carácter en UTF-8 puede estar
en el rango de 1 a 4 bytes, una constante de serie de Unicode de
la longitud máxima puede representar en realidad menos de 32.672
caracteres.
Un carácter se puede expresar mediante su carácter tipográfico (glifo) o su elemento de código Unicode. El elemento de código de un carácter Unicode está en el rango de X'000000' a X'10FFFF'. Para expresar un carácter Unicode mediante el elemento de código, utilice el carácter de escape de Unicode seguido de 4 dígitos hexadecimales o el carácter de escape de Unicode seguido de un signo más (+) y 6 dígitos hexadecimales. El carácter de escape de Unicode por omisión es la barra inclinada invertida (\), pero se puede especificar un carácter diferente con la cláusula UESCAPE. La cláusula UESCAPE se especifica como la palabra clave UESCAPE seguida de un carácter individual entre delimitadores de serie. El carácter de escape de Unicode no puede ser un signo más (+), unas comillas dobles ("), unas comillas simples ('), un espacio en blanco ni ninguno de los caracteres de 0 a 9 o de A a F, en mayúsculas o minúsculas (SQLSTATE 42604). Un ejemplo de los dos modos en que se puede especificar la letra latina A mayúscula como elemento de código de Unicode es \0041 y \+000041.
El valor de una constante se convierte siempre en la página de códigos de la base de datos cuando se vincula con la base de datos. Se considera que está en la página de códigos de la base de datos. Por lo tanto, si se utiliza en una expresión que combina una constante con una columna FOR BIT DATA y cuyo resultado es FOR BIT DATA, el valor de la constante no se convertirá desde su representación de página de códigos de base de datos.
'12/14/1985' '32' 'DON''T CHANGE' ''
X'FFFF' X'46 72 61 6E 6B'
U&'\0141ód\017A is a city in Poland' U&'c:\\temp' U&'@+01D11E' UESCAPE '@'La
serie situada más a la derecha en la segunda línea del ejemplo representa el patrón
VARCHAR de la serie ASCII Frank. La última línea corresponde a:
Łódź is a city in Poland, c:\temp, y un único carácter que representa el símbolo de la clave G.
Constantes de series gráficas
- Bases de datos que no son de Unicode
- En una base de datos que no es de Unicode, una constante de la
serie gráfica consiste de una secuencia de caracteres de doble
byte que comienza y termina con un apostrofe de un solo byte ('), y
que va precedida por una G o N de un solo byte. Los caracteres entre
las apostrofes deben representar un número par de bytes, y la
longitud de la serie gráfica no debe exceder los 16336 bytes
dobles. El apóstrofo no debe aparecer como parte de un carácter MBCS
para que se considere como delimitador. Por ejemplo:
G'serie de caracteres de doble byte' N'serie de caracteres de doble byte' - bases de datos Unicode
- En una base de datos de Unicode, una constante de secuencia gráfica consiste de una secuencia de caracteres que comienza y termina con un apóstrofo ('), y que va precedido por un carácter G o N. Las unidades de secuencia de valores constante se determinan mediante las unidades de la secuencia predeterminada del entorno. Los caracteres entre apóstrofos se convierten al código de la página 1200 y la longitud de la serie gráfica no debe exceder los 16336 bytes dobles. Cuando la unidad de la serie de entorno es CODEUNITS32, el número de unidades de código no debe exceder los 8168.
En una base de datos Unicode, constante de serie gráfica hexadecimal que especifica una serie gráfica de longitud variable. El formato de una constante de serie gráfica hexadecimal es: GX seguido por una secuencia de caracteres que empieza y termina por un apostrofe. Los caracteres que se encuentran entre los apostrofes deben ser un múltiplo par de cuatro dígitos hexadecimales. El número de dígitos hexadecimales no debe de exceder de 32 672. Cuando la unidad de la secuencia del entorno es CODEUNITS32, el número de unidades de código que la constante de la secuencia gráfica hexadecimal representa no debe exceder de 8 168; de lo contrario se devuelve un error (SQLSTATE 54002). Si el formato de la constante de serie gráfica hexadecimal no es correcto, se devuelve un error (SQLSTATE 42606). Cada grupo de cuatro dígitos representa un único carácter gráfico. En una base de datos Unicode, esto sería un único carácter gráfico UCS-2.
GX'FFFF' representa el patrón
de bits '1111111111111111' en una base de datos Unicode. GX'005200690063006B' representa el patrón VARGRAPHIC de la serie ASCII Ricken una base de datos Unicode.
Restricciones de serie binaria
Una constante de serie binaria especifica una serie binaria de longitud variable de tipo VARBINARY.
Una constante de serie binaria se forma especificando BX seguido de una secuencia de caracteres que empieza y finaliza con un delimitador de serie. 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 los 32.672.
Un dígito hexadecimal es un dígito 0 al 9 o cualquiera de las letras A a F (mayúsculas o minúsculas). Bajo los convenios de notación hexadecimal, cada par de dígitos hexadecimales representa un byte. Esta representación es similar a la representación de la constante de tipo carácter que utiliza la forma X''. Sin embargo, la constante de serie binaria y la constante de serie de caracteres no son compatibles y la forma X'' no se puede utilizar para especificar una constante de serie binaria, igual que la forma BX'' no se puede utilizar para especificar una constante de serie de caracteres.
BX'0000'
BX'C141C242'
BX'FF00FF01FF'Constantes de fecha y hora
Una constante de fecha y hora especifica una fecha, una hora o una indicación de fecha y hora.
DATE 'aaaa-mm-dd'- El tipo de datos del valor es DATE.
TIME 'hh:mm:ss'- o
TIME 'hh:mm'- El tipo de datos del valor es TIME.
TIMESTAMP 'aaaa-mm-dd hh:mm:ss.nnnnnnnnnnnn'- o
TIMESTAMP 'aaaa-mm-dd-hh.mm.ss.nnnnnnnnnnnn'- donde el número de dígitos de segundos fraccionarios puede variar entre 0 y 12 y el carácter de punto se puede omitir si no hay segundos fraccionarios. El tipo de datos del valor es TIMESTAMP(p), donde p es el número de dígitos de los segundos fraccionarios.
Constantes de series gráficas UCS-2
En una base de datos Unicode, serie gráfica hexadecimal UCS-2 que especifica una constante de serie gráfica UCS-2 de longitud variable. El formato de una constante de serie gráfica UCS-2 hexadecimal es: UX seguido por una secuencia de caracteres que empieza y termina por un apostrofe. Los caracteres que se encuentran entre los apostrofes deben ser un múltiplo par de cuatro dígitos hexadecimales. El número de dígitos hexadecimales no debe superar los 16336; en caso contrario, se devuelve un error (SQLSTATE 54002). Si el formato de la constante de serie gráfica UCS-2 hexadecimal no es correcto, se devuelve un error (SQLSTATE 42606). Cada grupo de cuatro dígitos representa un único carácter gráfico UCS-2.
UX'0042006F006200620079' representa
el patrón VARGRAPHIC de la serie ASCII Bobby.
Constantes booleanas
Una constante booleana especifica la palabra clave TRUE o FALSE, que representa el valor de verdad correspondiente. Se puede especificar un valor de verdad desconocido utilizando CAST(NULL AS BOOLEAN).