4.5 Örtük dönüşüm uyarısı

<< İç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ımUyarı
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
Not

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.