VARGRAPHIC Função escalar

A função VARGRAPHIC retorna uma representação de cadeia gráfica de comprimento variável de um valor de um tipo de dado diferente.

Inteiro para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( integer-expression )

Decimal para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( decimal-expression ,decimal-character )

Flutuante-ponto para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( floating-point-expression ,decimal-character)

Decimal floating-ponto a vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( decimal-floating-point-expression ,decimal-character)

Caractere para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( character-expression ,integer)

Gráfico para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( graphic-expression ,integer )

Datetime a vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( datetime-expression ,ISOUSAEURJISLOCAL )

Boolean para vargraphic

Read syntax diagramSkip visual syntax diagram VARGRAPHIC ( boolean-expression )

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.

Inteiro para vargraphic
expressão inteira
Uma expressão que retorna um valor que é de um tipo de dado inteiro (SMALLINT, INTEGER ou BIGINT).
O resultado é a representação de cadeia gráfica de comprimento variável de integer-expression na forma de uma constante de número inteiro SQL. O atributo length do resultado depende de se integer-expression é um inteiro pequeno, grande ou grande, da seguinte forma:
  • Se o primeiro argumento for um pequeno inteiro, o comprimento máximo do resultado é 6.
  • Se o primeiro argumento for um inteiro grande, o comprimento máximo do resultado é 11.
  • Se o primeiro argumento for um grande número inteiro, o comprimento máximo do resultado é 20.
O comprimento real do resultado é o menor número de caracteres de byte duplo que podem ser usados para representar o valor do argumento. Os principais zeros não estão incluídos. Se o argumento for negativo, o primeiro caractere de byte duplo do resultado é um sinal de menos; caso contrário, o primeiro caractere de byte duplo é um dígito.

A página de código do resultado é a página de código DBCS da seção.

Decimal para vargraphic
decimal-expressão
Uma expressão que retorna um valor que é um tipo de dados decimal. A função escalar DECIMAL pode ser usada para alterar a precisão e a escala.
caractere decimal
Especifica a constante de caracteres de byte duplo que é usada para delimitar os dígitos decimais na sequência gráfica de resultado. A constante de caracteres de duplo byte 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 gráfica de comprimento variável de decimal-expression na forma de uma constante decimal SQL. O atributo length do resultado é 2 +p, onde p é a precisão de decimal-expression. O comprimento real do resultado é o menor número de caracteres de byte duplo que podem ser usados para representar o resultado, exceto que os zeros rasos estão incluídos. Os principais zeros não estão incluídos. Se decimal-expression for negativa, o primeiro caractere de byte duplo do resultado é um sinal de menos; caso contrário, o primeiro caractere de duplo byte é um dígito ou o caractere decimal. Se a escala de decimal-expression for zero, o caractere decimal não será retornado.

A página de código do resultado é a página de código DBCS da seção.

Flutuante-ponto para vargraphic
expressão de ponto flutuante
Uma expressão que retorna um valor que é um tipo de dados de ponto flutuante (DOUBLE ou REAL).
caractere decimal
Especifica a constante de caracteres de byte duplo que é usada para delimitar os dígitos decimais na sequência gráfica de resultado. A constante de caracteres de duplo byte 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 gráfica de comprimento variável de floating-point-expression na forma de uma constante de ponto flutuante SQL.

O comprimento máximo do resultado é 24. O comprimento real do resultado é o menor número de caracteres de byte duplo que pode representar o valor de floating-point-expression tal que a mantissa consiste em um único dígito diferente de zero seguido do decimal-character e uma sequência de digitos. Se floating-point-expression for negativa, o primeiro caractere de byte duplo do resultado é um sinal de menos; caso contrário, o primeiro caractere de byte duplo é um dígito. Se floating-point-expression for zero, o resultado será 0E0.

A página de código do resultado é a página de código DBCS da seção.

Decimal floating-ponto a vargraphic
expressão decimal de ponto flutuante
Uma expressão que retorna um valor que é um tipo de dado decimal floating-point (DECFLOAT).
caractere decimal
Especifica a constante de caracteres de byte duplo que é usada para delimitar os dígitos decimais na sequência gráfica de resultado. A constante de caracteres de duplo byte 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 gráfica de comprimento variável de decimal-floating-point-expression na forma de uma constante de ponto de flutuação decimal SQL. O comprimento máximo do resultado é 42. O comprimento real do resultado é o menor número de caracteres de byte duplo que pode representar o valor de decimal-floating-point-expression. Se decimal-floating-point-expression for negativo, o primeiro caractere de byte duplo do resultado é um sinal de menos; caso contrário, o primeiro caractere de byte duplo é 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 cadeias de caracteres G'INFINITY', G'SNAN' e G'NAN', respectivamente, serão retornadas. Se o valor especial for negativo, o primeiro caractere de byte duplo do resultado é um sinal de menos. O valor especial de ponto flutuante decimal sNaN não resulta em um aviso quando convertido em uma cadeia de caracteres.

A página de código do resultado é a página de código DBCS da seção.

Caractere para vargraphic
Em bancos de dados Unicode:
caractere-expressão
Uma expressão que retorna um valor que é um tipo de dados string de caracteres embutidos. A expressão não deve ser um subtipo DATA BIT DATA (SQLSTATE 42846).
inteiro
Uma constante de número inteiro que especifica o atributo length para a cadeia gráfica de comprimento variável resultante. O valor deve estar entre 0 e o comprimento máximo para o tipo de dados VARGRAPHIC 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 VARGRAPHIC nas unidades string do resultado.
    • O atributo length do primeiro argumento.

O resultado é uma cadeia gráfica de comprimento variável que é convertida a partir de character-expression. O atributo length do resultado é determinado pelo valor de integer.

Se o comprimento de character-expression que é convertido em uma string gráfica for maior do que o atributo length do resultado, vários cenários existem:
  • 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 é realizado com um aviso retornado (SQLSTATE 01004). Quando a cadeia de saída é truncada, tal que o último caractere é um sub-rogado alto, essa barriga de aluguel é excluída. Não dependa deste comportamento porque ele pode mudar em um release futuro.
  • Se integer não for especificado e character-expression é um VARCHAR, truncamento é realizado com um aviso retornado (SQLSTATE 01004).
  • Se integer não for especificado e o caractere-expressão for um CLOB, um erro será retornado (SQLSTATE 22001).

Esta função converte character-expression a partir de UTF-8 para UTF-16. Todo caractere de character-expression é convertido.

Em bancos de dados não Unicode:
caractere-expressão
Uma expressão que retorna um valor que é um tipo de dados CHAR ou VARCHAR embutido.

O resultado é uma cadeia gráfica de comprimento variável que é convertida a partir de character-expression. O atributo length do resultado é o mínimo do atributo length de character-expression e o comprimento máximo para o tipo de dados VARGRAPHIC.

Se o comprimento de character-expression que é convertido para uma string gráfica for maior que o atributo length do resultado, um erro será retornado (SQLSTATE 22001).

Para bancos de dados com um conjunto de código que não é o EUC japonês (código página 954) ou Chinês Tradicional (código página 964), cada caractere de byte único em character-expression é convertido em sua representação de byte duplo equivalente ou para o caractere de substituição de byte duplo no resultado. Cada caractere de byte duplo em character-expression é mapeado sem conversão extra. Se o primeiro byte de um caractere de byte duplo aparecer como o último byte de character-expression, ele será convertido para o caractere de substituição de byte duplo. A ordem sequencial dos caracteres em character-expression é preservada. Nenhum código de aviso ou erro é gerado se um ou mais caracteres de substituição de byte duplo forem retornados no resultado.

Para obter detalhes sobre o processo de conversão para bancos de dados com um conjunto de código que é o EUC japonês (página de código 954) ou Chinês Tradicional (página de código 964), consulte a seção Links Relacionados.

Gráfico para vargraphic
expressão gráfica
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 cadeia gráfica de comprimento variável resultante. O valor deve estar entre 0 e o comprimento máximo para o tipo de dados VARGRAPHIC 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.
  • Caso contrário, o atributo length do resultado é o inferior dos seguintes valores:
    • O comprimento máximo para o tipo de dados VARGRAPHIC nas unidades string do resultado
    • O atributo length do primeiro argumento

O resultado é uma cadeia gráfica de comprimento variável. O atributo length do resultado é determinado pelo valor de integer.

Se o comprimento de graphic-expression for maior do que o atributo length do resultado, vários cenários existem:
  • 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 inteiro for especificado, o truncamento é 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). Em um banco de dados Unicode, quando a cadeia de saída é truncada, tal que o último caractere é um sub-rogado alto, esse substituo é convertido para o caractere em branco (X'0020 '). Não dependa deste comportamento, pois ele pode mudar em um release futuro.
  • Se integer não for especificado, um erro será retornado (SQLSTATE 22001).
Datetime a vargraphic
expressão de data e hora
Uma expressão que é um dos seguintes tipos de dados:
DATA
O resultado é a representação da cadeia gráfica 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).
Horário
O resultado é a representação de cadeia gráfica 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 gráfica 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 deve ser especificado (SQLSTATE 42815).
A página de código do resultado é a página de código DBCS da seção.
Boolean para vargraphic
expressão booleana
Uma expressão que retorna um valor booleano (TRUE ou FALSE). O resultado é 'TRUE' ou 'FALSE'.

Result

A função VARGRAPHIC retorna uma representação de cadeia gráfica de comprimento variável de:
  • Um número inteiro (somente banco de dados Unicode), se o primeiro argumento for um SMALLINT, INTEGER ou BIGINT
  • Um número decimal (somente banco de dados Unicode), se o primeiro argumento for um número decimal
  • Um número de ponto de flutuação de dupla precisão (somente banco de dados Unicode), se o primeiro argumento for um DOUBLE ou REAL
  • Um número de ponto de flutuação decimal (somente banco de dados Unicode), se o primeiro argumento for um número de ponto de flutuação decimal (DECFLOAT)
  • Uma sequência de caracteres, se o primeiro argumento for qualquer tipo de cadeia de caracteres
  • Uma sequência gráfica, se o primeiro argumento for qualquer tipo de cadeia gráfica
  • Um valor de datetime (somente bancos de dados Unicode), se o argumento first for um DATE, TIME ou TIMESTAMP
  • Um valor booleano (TRUE ou FALSE)
Em um banco de dados não Unicode, as unidades string do resultado são bytes duplos. Caso contrário, as unidades de sequência do resultado são determinadas pelo tipo de dados do primeiro argumento.
  • CODEUNITS16, se o primeiro argumento for sequência de caracteres ou uma sequência gráfica com unidades de cadeia de OCTETS ou CODEUNITS16.
  • 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 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.

Exemplos

  • Exemplo 1: A coluna EDLEVEL é definida como SMALLINT. A instrução a seguir retorna o valor como uma sequência gráfica de comprimento variável.
      SELECT VARGRAPHIC(EDLEVEL) 
        FROM EMPLOYEE 
        WHERE LASTNAME = 'HAAS'
    Resultados no valor G '18'.
  • Exemplo 2: As colunas SALÁRIO e COMM são definidas como DECIMAL com uma precisão de 9 e uma escala de 2. Retorne a renda total para o funcionário Haas usando o caractere decimal de vírgula.
      SELECT VARGRAPHIC(SALARY + COMM, ',') 
        FROM EMPLOYEE 
        WHERE LASTNAME = 'HAAS'
    Resultados no valor G '56970,00'.
  • Exemplo 3: A instrução a seguir retorna uma string de tipo de dados VARGRAPHIC com o valor 'TRUE'.
       values VARGRAPHIC(3=3)
  • Exemplo 4: A instrução a seguir retorna uma string de tipo de dados VARGRAPHIC com o valor 'FALSE'.
       values VARGRAPHIC(3>3)