Função Escalar CHAR
A função CHAR retorna uma representação de cadeia de caracteres de comprimento fixo de um valor de um tipo de dado diferente.
Inteiro para CHAR
Decimal para CHAR
Flutuante-ponto para CHAR
Decimal floating-point para CHAR
Cadeia de caracteres para CHAR
Cadeia gráfica para CHAR
Cadeia binária para CHAR
Datetime para CHAR
Boolean para CHAR
O esquema é SYSIBM. O nome da função não pode ser especificado como um nome qualificado quando palavras-chave são usadas na assinatura de função. O SYSFUN.CHAR(floating-point-expression) a assinatura continua a estar disponível. Nesse caso, o caractere decimal é sensível ao locale e, portanto, retorna um período ou uma vírgula, dependendo do locale do servidor de banco de dados.
- Integer to CHAR
- integer-expression
- Uma expressão que retorna um valor que é de um tipo de dado inteiro (SMALLINT, INTEGER ou BIGINT).
O resultado é uma representação string de caracteres de comprimento fixo de integer-expression na forma de uma constante de número inteiro SQL. O resultado consiste em caracteres n , que representam os dígitos significativos no argumento, e é precedido por um sinal de menos se o argumento for negativo. O resultado é alinhado à esquerda. Se o tipo de dados do primeiro argumento for:- SMALLINT, o comprimento do resultado é 6
- INTEGER, o comprimento do resultado é 11
- BIGINT, o comprimento do resultado é 20
A página de código do resultado é a página de código da seção .
- Decimal to CHAR
- decimal-expressão
- Uma expressão que retorna um valor que é um tipo de dados decimal. Se uma precisão e escala diferentes forem necessárias, a função escalar DECIMAL pode ser usada primeiro para fazer a mudança.
- decimal-character
- Especifica a constante de caractere de byte único que é usada para delimitar os dígitos decimais na sequência de caracteres de resultado. A constante de caractere não pode ser um dígito, o sinal de mais (+), o sinal de menos (-), ou um branco (SQLSTATE 42815). O padrão é o caractere (.) do período.
O resultado é uma representação de cadeia de caracteres de comprimento fixo de decimal-expression na forma de uma constante decimal SQL. O comprimento do resultado é 2 +p, onde p é a precisão de decimal-expression. Os principais zeros não estão incluídos. Os zeros rasos estão incluídos. Se decimal-expression for negativa, o primeiro caractere do resultado é um sinal de menos; caso contrário, o primeiro caractere é um dígito ou o caractere decimal. Se a escala de decimal-expression for zero, o caractere decimal não será retornado. Se o número de bytes no resultado for menor do que o comprimento definido do resultado, o resultado será preenchida à direita com single-byte blanks.
A página de código do resultado é a página de código da seção .
- Floating-point to CHAR
- floating-point-expression
- Uma expressão que retorna um valor que é um tipo de dados de ponto flutuante (DOUBLE ou REAL).
- decimal-character
- Especifica a constante de caractere de byte único que é usada para delimitar os dígitos decimais na sequência de caracteres de resultado. A constante de caractere não pode ser um dígito, o sinal de mais (+), o sinal de menos (-), ou um branco (SQLSTATE 42815). O padrão é o caractere (.) do período.
O resultado é uma representação de cadeia de caracteres de comprimento fixo de floating-point-expression na forma de uma constante de ponto flutuante SQL. O comprimento do resultado é 24. O resultado é o menor número de caracteres que podem representar o valor de floating-point-expression tal que a mantissa consiste em um único dígito diferente de zero seguido de um período e uma sequência de algarismos. Se floating-point-expression for negativa, o primeiro caractere do resultado é um sinal de menos; caso contrário, o primeiro caractere é um dígito. Se floating-point-expression for zero, o resultado será 0E0. Se o número de bytes no resultado for menor que 24, o resultado é acolado à direita com single-byte blanks.
A página de código do resultado é a página de código da seção .
- Decimal floating-point to CHAR
- decimal-floating-point-expression
- Uma expressão que retorna um valor que é um tipo de dado decimal floating-point (DECFLOAT).
- decimal-character
- Especifica a constante de caractere de byte único que é usada para delimitar os dígitos decimais na sequência de caracteres de resultado. A constante de caractere não pode ser um dígito, o sinal de mais (+), o sinal de menos (-), ou um branco (SQLSTATE 42815). O padrão é o caractere (.) do período.
O resultado é uma representação de cadeia de caracteres de comprimento fixo de decimal-floating-point-expression na forma de uma constante de ponto de flutuação decimal SQL. O atributo length do resultado é 42. O resultado é o menor número de caracteres que podem representar o valor de decimal-floating-point-expression. Se decimal-floating-point-expression for negativa, o primeiro caractere do resultado é um sinal de menos; caso contrário, o primeiro caractere é um dígito. Se decimal-floating-point-expression for zero, o resultado será 0.
Se o valor de decimal-floating-point-expression for o valor especial Infinity, sNaN, ou NaN, as strings 'INFINITY', 'SNAN' e 'NAN ', respectivamente, são retornadas. Se o valor especial for negativo, o primeiro caractere do resultado é um sinal de menos. O valor especial de ponto de flutuação decimal sNaN não resulta em aviso quando convertido em uma string. Se o número de caracteres no resultado for menor que 42, o resultado é acolado à direita com single-byte blancos.
A página de código do resultado é a página de código da seção.
- Character string to CHAR
- caractere-expressão
- Uma expressão que retorna um valor que é um tipo de dados string de caracteres embutidos.
- inteiro
- Uma constante de número inteiro que especifica o atributo length para a sequência de caracteres de comprimento fixo resultante. O valor deve estar entre 0 e o comprimento máximo para o tipo de dados CHAR nas unidades string do resultado.Se o segundo argumento não for especificado:
- Se o character-expression é a constante de cadeia vazia, o atributo length do resultado é 0.
- Caso contrário, o atributo length do resultado é o inferior dos seguintes valores:
- O comprimento máximo para o tipo de dados CHAR nas unidades string do resultado
- O atributo length do primeiro argumento.
O resultado é uma sequência de caracteres de comprimento fixo. Se character-expression for FOR BIT DATA, o resultado é FOR BIT DATA.
O comprimento do resultado é o mesmo que o atributo length do resultado. Se o comprimento de character-expression for:- Menos do que o atributo length do resultado, o resultado é acolado com espaços em branco até o atributo length do resultado
- Maior que o atributo length do resultado:
- Se a unidade de sequência do resultado for CODEUNITS32, o truncamento será realizado. Se apenas caracteres em branco são truncados e character-expression é CHAR ou VARCHAR, nenhum aviso é retornado. Caso contrário, um aviso é retornado (SQLSTATE 01004).
- Se integer for especificado, o truncamento será realizado. Se apenas caracteres em branco são truncados e character-expression é CHAR ou VARCHAR, nenhum aviso é retornado. Caso contrário, um aviso é retornado (SQLSTATE 01004). Quando parte de um caractere multi-byte é truncado, esse caractere parcial é substituído pelo caractere em branco. Não dependa deste comportamento porque ele pode mudar em um release futuro.
- Se integer não for especificado e character-expression for VARCHAR, o comportamento de truncamento é:
- Se somente caracteres em branco devem ser truncados, o truncamento é realizado sem aviso retornado.
- Se caracteres não em branco devem ser truncados, um erro é retornado (SQLSTATE 22001).
- Se integer não for especificado e character-expression é CLOB, um erro é retornado (SQLSTATE 22001).
- Graphic string to CHAR
- graphic-expression
- Uma expressão que retorna um valor que é um tipo de dados de cadeia gráfica embutida.
- inteiro
- Uma constante de número inteiro que especifica o atributo length para a sequência de caracteres de comprimento fixo resultante. O valor deve estar entre 0 e o comprimento máximo para o tipo de dados CHAR nas unidades string do resultado.Se o segundo argumento não for especificado:
- Se o graphic-expression é a constante de cadeia vazia, o atributo length do resultado é 0.
- Se as unidades de cadeia de graphic-expression for CODEUNITS32, o atributo length do resultado é o inferior dos seguintes valores:
- O comprimento máximo para o tipo de dados CHAR nas unidades string do resultado.
- O atributo length do primeiro argumento.
- Caso contrário, o atributo length do resultado é o inferior dos seguintes valores:
- O comprimento máximo para o tipo de dados CHAR nas unidades string do resultado.
- 3 * atributo comprimento do primeiro argumento.
O resultado é uma sequência de caracteres de comprimento fixo que é convertida a partir de graphic-expression. O comprimento do resultado é o mesmo que o atributo length do resultado.
Se o comprimento de graphic-expression que é convertido para uma sequência de caracteres é:- Menos do que o atributo length do resultado, o resultado é acolado com espaços em branco até o atributo length do resultado.
- Maior que o atributo length do resultado:
- Se a unidade de sequência do resultado for CODEUNITS32, o truncamento será realizado. Se somente caracteres em branco são truncados e graphic-expression é GRAPHIC ou VARGRAPHIC, nenhum aviso é retornado. Caso contrário, um aviso é retornado (SQLSTATE 01004).
- Se integer for especificado e graphic-expression for um GRAPHIC ou VARGRAPHIC, truncamento é realizado sem aviso retornado.
- Se integer for especificado e expressão gráfica for um DBCLOB, o truncamento é realizado com um aviso retornado (SQLSTATE 01004).
- Se integer não for especificado, um erro será retornado (SQLSTATE 22001).
- Binary string to CHAR
- binária-expressão
- Uma expressão que retorna um valor que é um tipo de dados de cadeia binária embutida.
- inteiro
- Uma constante de número inteiro que especifica o atributo length para a sequência de caracteres de comprimento fixo resultante.
O resultado é uma cadeia de caracteres BIT DATA de comprimento fixo, preenchida com espaços em branco se necessário.
- Datetime to CHAR
- datetime-expression
- Uma expressão que é de um dos seguintes tipos de dados:
- DATE
- O resultado é a representação de cadeia de caracteres da data no formato especificado pelo segundo argumento. O comprimento do resultado é 10. Um erro é retornado se o segundo argumento for especificado e não for um valor válido (SQLSTATE 42703).
- TIME
- O resultado é a representação de cadeia de caracteres do tempo no formato especificado pelo segundo argumento. O comprimento do resultado é 8. Um erro é retornado se o segundo argumento for especificado e não for um valor válido (SQLSTATE 42703).
- TIMESTAMP
- O resultado é a representação de cadeia de caracteres do timestamp. Se o tipo de dados de datetime-expression for TIMESTAMP (0), o comprimento do resultado será 19. Se o tipo de dados de datetime-expression for TIMESTAMP (n), onde n está entre 1 e 12, o comprimento do resultado é 20 +n. Caso contrário, o comprimento do resultado é 26. O segundo argumento não é aplicável e não deve ser especificado (SQLSTATE 42815).
A página de código do resultado é a página de código da seção .
- Boolean to CHAR
- boolean-expression
- Uma expressão que retorna um valor booleano (TRUE ou FALSE). O resultado é ou 'TRUE' (observe o branco após o E) ou 'FALSE'.
Result
- Um número inteiro, se o primeiro argumento for um SMALLINT, INTEGER, ou BIGINT
- Um número decimal, se o primeiro argumento for um número decimal
- Um número de ponto de flutuação de dupla precisão, se o primeiro argumento for um DOUBLE ou REAL
- Um número de ponto de floatinga decimal, se o primeiro argumento for um DECFLOAT
- Uma sequência de caracteres, se o primeiro argumento for qualquer tipo de cadeia de caracteres
- Uma string gráfica (somente bancos de dados Unicode), se o primeiro argumento for qualquer tipo de cadeia gráfica
- Um valor datetime, se o primeiro argumento for um DATE, TIME ou TIMESTAMP
- Um valor booleano (TRUE ou FALSE)
- OCTETS, se o primeiro argumento for cadeia de caracteres ou uma sequência gráfica com unidades de cadeia de OCTETS, CODEUNITS16ou bytes duplos.
- CODEUNITS32, se o primeiro argumento for sequência de caracteres ou uma sequência gráfica com unidades de cadeia de CODEUNITS32.
- Determinado pela unidade de cadeia padrão do ambiente, se o primeiro argumento não for uma sequência de caracteres ou uma string gráfica.
- Se a entrada era uma sequência de caracteres, o caractere parcial é substituído por um ou mais espaços em branco
- Se a entrada foi uma sequência gráfica, o caractere parcial é substituído pela sequência vazia
Se o primeiro argumento pode ser nulo, o resultado pode ser nulo. Se o primeiro argumento for nulo, o resultado será o valor nulo.
Notas
- Aumentando a portabilidade de aplicativos: Se o primeiro argumento for numérico, ou se o primeiro argumento for uma string e o argumento length for especificado, use a especificação CAST em vez desta função aumentar a portabilidade de suas aplicações.
- Decimal a caráter e zeros de liderança: Em versões anteriores à versão 9.7, o resultado para entrada decimal para esta função inclui zeros de liderança e um caractere decimal rasteiro. O parâmetro de configuração do banco de dados dec_to_char_fmt pode ser configurado como
V95
para ter esta função retornar a versão 9.5 resultado para entrada decimal. O valor padrão do parâmetro de configuração do banco de dados dec_to_char_fmt para novos bancos de dados éNEW
, que tem estes resultados de retorno de função que combinam com as regras de casting padrão SQL e é consistente com resultados da função VARCHAR.
Exemplos
- Exemplo 1: Assume que a coluna PRSTDATE tem um valor interno equivalente a 1988-12-25. A função a seguir retorna o valor '25.12.1988'.
CHAR(PRSTDATE, USA) - Exemplo 2: Assume que a coluna INICIAL tem um valor interno equivalente a 17:12:30, e que a variável host HOUR_DUR (decimal (6, 0)) é uma duração de tempo com um valor de 050000 (ou seja, 5 horas). A função a seguir retorna o valor '17:12'.
A função a seguir retorna o valor '22:12'.CHAR(STARTING, USA)CHAR(STARTING + :HOUR_DUR, USA) - Exemplo 3: Assumo que a coluna RECEBIDA (TIMESTAMP) tenha um valor interno equivalente à combinação das colunas PRSTDATE e INICIAR. A função a seguir retorna o valor '1988-12-25-17.12.30.000000'.
CHAR(RECEIVED) - Exemplo 4: A coluna LASTNAME é definida como VARCHAR (15). A função a seguir retorna os valores nesta coluna como strings de caracteres de comprimento fixo que tem 10 bytes de comprimento. Os valores LASTNAME que têm mais de 10 bytes de comprimento (excluindo espaços em branco rasteiro) são truncados e um aviso é retornado.
SELECT CHAR(LASTNAME,10) FROM EMPLOYEE - Exemplo 5: A coluna EDLEVEL é definida como SMALLINT. A função a seguir retorna os valores nesta coluna como strings de caracteres de comprimento fixo. Um valor EDLEVEL de 18 é retornado como o valor CHAR (6) '18' seguido por quatro espaços em branco.
SELECT CHAR(EDLEVEL) FROM EMPLOYEE - Exemplo 6: A coluna SALÁRIO é definida como DECIMAL com uma precisão de 9 e uma escala de 2. O valor atual (18357.50) deve ser exibido com uma vírgula como o caractere decimal (18357,50). A função a seguir retorna o valor '18357,50' seguido por três espaços em branco.
CHAR(SALARY, ',') - Exemplo 7: Valores na coluna SALÁRIO devem ser subtraídos a partir de 20000.25 e exibidos com o caractere decimal padrão. A função a seguir retorna o valor '-0001642.75' seguido por três espaços em branco.
CHAR(20000.25 - SALARY) - Exemplo 8: Assume que a variável host SAZONS_TICKETS é definida como INTEGER e tem um valor de 10000. A função a seguir retorna o valor '10000.00'.
CHAR(DECIMAL(:SEASONS_TICKETS,7,2)) - Exemplo 9: Assume que a variável host DOUBLE_NUM é definida como DOUBLE e tem um valor de -987.654321E-35. A função a seguir retorna o valor '-9.87654321E-33' seguido por nove espaços em branco finais porque o tipo de dados de resultados é CHAR (24).
CHAR(:DOUBLE_NUM) - Exemplo 10: A instrução a seguir retorna uma string de tipo de dados CHAR com o valor 'TRUE'.
values CHAR(3=3) - Exemplo 11: A instrução a seguir retorna uma string de tipo de dados CHAR com o valor 'FALSE'.
values CHAR(3>3)
