4.3 Açık CAST

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 4. Tip uyumluluğu ve dönüşümler >

4.3 Açık CAST

CAST(<ifade> AS <tip>) tek dönüşüm ifadesidir. TRY_CAST yoktur; kullanıcı tanımlı CREATE CAST de yoktur.

Açık CAST, örtük dönüşümden yalnızca bir noktada ayrılır: yuvarlamayı yapar. Standart, kesirli değerden tam sayıya dönüşümde yuvarlamayı uygulamaya bıraktığı için cast(1.5 as integer) 2 verir. “Bunu yuvarla” demek isteyen çağıranın tek ve açık yolu budur.

İfadeSonuç
cast('123' as integer)123 (INTEGER)
cast('2.5' as integer)3; yuvarlar
cast(123 as varchar(20))'123'
cast(true as varchar(20))'TRUE'; standart yazımı
cast('TRUE' as boolean)true; büyük/küçük harf duyarsız
cast(null as <herhangi tip>)null
cast(123 as clob)'123'; CLOB bir karakter dizisi tipidir
cast(1 as boolean)Derleme hatası; desteklenen bir çift değil
Dikkat

Karakter yoluyla gelen kesir ile sayısal yoldan gelen kesir farklı davranır: i = 2.5 reddedilir (kesir kuralı), ama i = '2.5' kabul edilip 3 olur, çünkü karakter değerin tam sayıya dönüşümü bir CAST'tir ve CAST yuvarlar. İkinci durumda derleyici örtük dönüşüm uyarısı verir (bkz. 4.5), ama sonuç sessizce yuvarlanmış olur. Kesin davranış isteniyorsa dönüşüm açıkça yazılır.