|
<< İç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.5 Örtük dönüşüm uyarısı |
Dönüşüm bir tip ailesi değiştiriyorsa (sayısal, karakter, tarih/saat, aralık, mantıksal, GUID) derleyici uyarır. Atanabilir aileler arası çiftlerin hepsinde bir tarafta karakter değer vardır: karakterden sayıya, tarihe, aralığa, mantıksala, GUID'e ve bunlardan karaktere.
WARNING: implicit conversion from STRING to INTEGER; use CAST to make it explicit
file: betik.sql(8,6)Uyarının gerekçesi şudur: SQL:2011 bu geçişlerde örtük bir dönüşüm tanımlamaz, dolayısıyla böyle bir yazım niyetten çok yanlışlık olur. Uyarıdır, hata değildir (lehçe bu çiftleri bilinçli olarak kabul eder), süreç çıkış kodunu etkilemez ve stderr'e yazılır.
Aile içi dönüşüm uyarı üretmez, çünkü olağandır:
| Yazım | Uyarı |
|---|---|
bi bigint; bi = <integer>; | yok; ikisi de sayısal |
c3 char(3); c3 = <varchar>; | yok; ikisi de karakter |
b binary(10); b = x'01020304'; | yok; ikili değerler bu motorda karakter dizisi temsilindedir |
i integer; i = '123'; | var; karakterden sayıya |
dt date; dt = '2020-01-15'; | var; karakterden tarihe |
i = cast('123' as integer); | yok; dönüşümü isteyen yazarın kendisi |
Değerin tipi derleme anında bilinmiyorsa (bir variant, dinamik SQL'den gelen bir
değer, bir parametre) uyarı çıkmaz; derleyicinin uyaracak bir şeyi yoktur. Çalışma zamanı
kuralı yine tam olarak uygulanır.