|
<< İç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.
| İfade | Sonuç |
|---|---|
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 |
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.