Tous les produits
Search
Centre de documentation

Hologres:TRY_CAST

Dernière mise à jour :Aug 11, 2026

TRY_CAST convertit une valeur TEXT en un type de données spécifié. Contrairement à CAST, elle ne génère jamais d'erreur en cas d'échec de conversion et renvoie NULL à la place. Utilisez TRY_CAST pour gérer les entrées incorrectes sans interrompre l'exécution de la requête.

Remarque

Hologres prend également en charge d'autres fonctions de conversion de type. Pour plus d'informations, consultez la page Fonctions de date et d'heure.

Limites

TRY_CAST nécessite Hologres V2.2 ou une version ultérieure.

Notes d'utilisation

  • L'expression d'entrée (source_string_expr) doit être de type TEXT.

  • Le paramètre target_data_type doit correspondre à l'un des types suivants : INTEGER, SMALLINT, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, DECIMAL, JSONB, DATE, TIMESTAMP ou TIMESTAMPTZ.

  • Les types DATE, TIMESTAMP et TIMESTAMPTZ nécessitent Hologres V3.0 ou une version ultérieure.

  • Si la conversion vers le type cible est impossible, la fonction renvoie NULL.

Syntaxe

TRY_CAST( <source_string_expr> AS <target_data_type> )

Paramètres

Paramètre Type de données Description
source_string_expr TEXT Colonne ou expression à convertir.
target_data_type Voir Notes d'utilisation Type de données cible. Renvoie NULL si la conversion de la valeur est impossible.

Exemples

Convertir TEXT en INT

Créez une table, insérez des données de test, puis utilisez TRY_CAST pour convertir la colonne value du type TEXT vers le type 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;

Résultat :

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

La valeur 'abc' ne pouvant pas être convertie en INT, TRY_CAST renvoie NULL pour cette ligne.

Utiliser TRY_CAST avec CASE WHEN pour gérer les résultats de conversion

Combinez TRY_CAST avec CASE WHEN pour brancher la logique selon que la conversion réussit ou échoue. C'est le modèle le plus courant pour exploiter les résultats de TRY_CAST dans les requêtes de production.

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;

Résultat :

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