char_length kulla nımında hata

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
AhmetNuri
Üye
Mesajlar: 260
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

char_length kulla nımında hata

Mesaj gönderen AhmetNuri »

Aşağıdaki kod niye çalışmıyor? Acaba char_length komutu select dışındaki yerlerde kullanılamiyor mu?

Kod: Tümünü seç

AS 
declare variable Yil VARCHAR(4);
declare variable Ay VARCHAR(2);
declare variable SonNo VARCHAR(4);
declare variable TeklifNoStr VARCHAR(10);
declare variable SifirTakfiye VARCHAR(10);
/*
   Bu Trigger ın amacı 2010010001 gibi sürekli bir teklif numarası üretmektir.
   Bu işlem için 3 adet generator kullanıyorum.
   1. Generator teklif numarasını tutuyor
   2. Generator Ay numarasını tutuyor
   3. Generator Yıl Numarasını Tutuyor
   Her ay değiştiğinde 1. genetator sıfırlanıyor
   Her Yıl değiştiğinde 2. generator sıfırlanıyor
   1. generator değeri 4 basamaktan küçük ise sıfır ile takfiye yapılıyor
*/
BEGIN 
IF (NEW.TEKLIFM_NO IS NULL) THEN BEGIN
  Yil = (cast (extract(year from current_date) as varchar(4)));
  Ay = (cast (extract(Month from current_date) as varchar(2)));
  SonNo = cast(GEN_ID(TEKLIFM_TEKLIFM_TEKLIFNO_GEN, 1) as varchar(10));
  TeklifNoStr = Yil || Ay || SonNo ;
  NEW.TEKLIFM_NO = (cast(teklifnostr as integer));
  if  char_length(TeklifNoStr) = 9  then SifirTakfiye ='0';
  if  char_length(TeklifNoStr) = 8  then SifirTakfiye ='00';


END 
    /* enter trigger code here */ 
END
if ile başlıyan iki satırı silersem çalışıyor. silemezsem hata

Kod: Tümünü seç

Token unknown - line 30, column 9
char_length
char_length i select içinde yazarsam o zamanda hata olmuyor ama benim işimi görmüyor
Ahmet DENİZ
Cevapla