Todos os produtos
Search
Central de documentação

Hologres:TRY_CAST

Última atualização: Jun 28, 2026

A função TRY_CAST converte um valor TEXT para um tipo de dados especificado. Diferente da função CAST, ela nunca gera erro em caso de falha na conversão, retornando NULL. Utilize TRY_CAST quando precisar tratar entradas inválidas de forma segura, sem interromper a execução da consulta.

Nota

O Hologres também oferece suporte a outras funções de conversão de tipos. Para mais informações, consulte Funções de data e hora.

Limitações

A função TRY_CAST exige o Hologres V2.2 ou superior.

Observações de uso

  • A expressão de entrada (source_string_expr) deve ser do tipo TEXT.

  • O parâmetro target_data_type deve ser um dos seguintes: INTEGER, SMALLINT, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, DECIMAL, JSONB, DATE, TIMESTAMP ou TIMESTAMPTZ.

  • Os tipos DATE, TIMESTAMP e TIMESTAMPTZ requerem o Hologres V3.0 ou superior.

  • Caso o valor não possa ser convertido para o tipo de destino, a função retorna NULL.

Sintaxe

TRY_CAST( <source_string_expr> AS <target_data_type> )

Parâmetros

Parâmetro

Tipo de dados

Descrição

source_string_expr

TEXT

Coluna ou expressão que será convertida.

target_data_type

Consulte as Observações de uso

Tipo de dados de destino. Retorna NULL se a conversão do valor não for possível.

Exemplos

Converter TEXT para INT

Crie uma tabela e insira dados de teste. Em seguida, use TRY_CAST para converter a coluna value de TEXT para INT.

-- Create a table and insert test data
CREATE TABLE IF NOT EXISTS try_cast_test (
  key   int,
  value text
);

INSERT INTO try_cast_test VALUES (1, '1'), (2, 'abc');

-- Convert the value column from TEXT to INT
SELECT key, value, TRY_CAST(value AS INT) AS value_int
FROM try_cast_test;

Resultado:

 key | value | value_int
-----+-------+-----------
   1 | 1     |         1
   2 | abc   | \N
(2 rows)

Como o valor 'abc' não pode ser convertido para INT, a função TRY_CAST retorna NULL para essa linha.

Usar TRY_CAST com CASE WHEN para tratar resultados de conversão

Combine TRY_CAST com CASE WHEN para definir ramificações lógicas baseadas no sucesso da conversão. Esse é o padrão mais comum para processar os resultados da função TRY_CAST em consultas de produção.

SELECT
  value,
  CASE
    WHEN TRY_CAST(value AS INT) IS NULL THEN 'Not a valid integer'
    ELSE 'Valid integer'
  END AS conversion_status
FROM try_cast_test;

Resultado:

 value | conversion_status
-------+---------------------
 1     | Valid integer
 abc   | Not a valid integer
(2 rows)