Tüm Ürünler
Search
Belge Merkezi

Hologres:TRY_CAST

Son Güncelleme:Oct 06, 2026

TRY_CAST işlevi, bir TEXT değerini belirtilen veri türüne dönüştürür. CAST işlevinden farklı olarak dönüşüm başarısız olduğunda hata vermez; bunun yerine NULL döndürür. Sorgunun kesilmesini önlemek ve hatalı girdileri daha esnek yönetmek istediğinizde TRY_CAST kullanın.

Not

Hologres başka tür dönüştürme işlevlerini de destekler. Daha fazla bilgi için bkz. Date and time functions.

Sınırlamalar

TRY_CAST işlevi Hologres V2.2 veya sonraki sürümlerde kullanılabilir.

Kullanım notları

  • Giriş ifadesi (source_string_expr) TEXT türünde olmalıdır.

  • target_data_type parametresi aşağıdaki türlerden biri olmalıdır: INTEGER, SMALLINT, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, DECIMAL, JSONB, DATE, TIMESTAMP veya TIMESTAMPTZ.

  • DATE, TIMESTAMP ve TIMESTAMPTZ türleri için Hologres V3.0 veya sonraki sürüm gerekir.

  • Değer hedef türe dönüştürülemezse NULL döner.

Söz dizimi

TRY_CAST( <source_string_expr> AS <target_data_type> )

Parametreler

Parametre Veri türü Açıklama
source_string_expr TEXT Dönüştürülecek sütun veya ifade.
target_data_type Bkz. Kullanım notları Hedef veri türü. Değer dönüştürülemezse NULL döner.

Örnekler

TEXT türünü INT türüne dönüştürme

Bir tablo oluşturup test verilerini ekleyin ve ardından TRY_CAST işlevini kullanarak value sütunundaki TEXT değerlerini INT türüne dönüştürün.

-- 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;

Sonuç:

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

'abc' değeri INT türüne dönüştürülemediği için TRY_CAST işlevi bu satır için NULL döndürür.

Dönüşüm sonuçlarını işlemek için TRY_CAST ile CASE WHEN kullanma

Dönüşümün başarılı olup olmadığına göre dallanmak amacıyla TRY_CAST işlevini CASE WHEN ifadesiyle birleştirin. Bu yaklaşım, üretim ortamındaki sorgularda TRY_CAST sonuçlarını değerlendirirken en sık kullanılan kalıptır.

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;

Sonuç:

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