CREATE OR REPLACE FUNCTION YAZIYLAYAZ(VAL IN NUMBER) RETURN VARCHAR2
AS
KR NUMBER := MOD(VAL, 1);
TL NUMBER := VAL-KR;
STL VARCHAR(9) := TO_CHAR(TL);
LEN INTEGER := 0;
MILYON NUMBER;
BIN NUMBER;
YUZ NUMBER;
RET VARCHAR2(1024);
TEMP NUMBER;
BEGIN
KR := KR*100;
LOOP
LEN := LENGTH(STL);
EXIT WHEN LEN >= 9;
STL :='0'||STL;
END LOOP;
MILYON := TO_NUMBER(SUBSTR(STL, 0, 3));
BIN := TO_NUMBER(SUBSTR(STL, 4, 3));
YUZ := TO_NUMBER(SUBSTR(STL, 7, 3));
IF MILYON >0 THEN
IF MILYON>99 THEN
CASE ((MILYON-MOD(MILYON, 100))/100)
WHEN 1 THEN
RET:='';
WHEN 2 THEN
RET:='İKİ';
WHEN 3 THEN
RET:='ÜÇ';
WHEN 4 THEN
RET:='DÖRT';
WHEN 5 THEN
RET:='BEŞ';
WHEN 6 THEN
RET:='ALTI';
WHEN 7 THEN
RET:='YEDİ';
WHEN 8 THEN
RET:='SEKİZ';
WHEN 9 THEN
RET:='DOKUZ';
END CASE;
RET:=RET||'YÜZ';
END IF;
TEMP:=MILYON-(MILYON-MOD(MILYON, 100));
TEMP:=(TEMP -MOD(TEMP, 10))/10;
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'ON';
WHEN 2 THEN
RET:=RET||'YİRMİ';
WHEN 3 THEN
RET:=RET||'OTUZ';
WHEN 4 THEN
RET:=RET||'KIRK';
WHEN 5 THEN
RET:=RET||'ELLİ';
WHEN 6 THEN
RET:=RET||'ALTMIŞ';
WHEN 7 THEN
RET:=RET||'YETMİŞ';
WHEN 8 THEN
RET:=RET||'SEKSEN';
WHEN 9 THEN
RET:=RET||'DOKSAN';
END CASE;
TEMP:=MILYON-(MILYON-MOD(MILYON, 100));
TEMP:=MOD(TEMP, 10);
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'BİR';
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
RET:=RET||'MİLYON';
END IF;
IF BIN >0 THEN
IF BIN>99 THEN
CASE ((BIN-MOD(BIN, 100))/100)
WHEN 1 THEN
RET:=RET||'';
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
RET:=RET||'YÜZ';
END IF;
TEMP:=BIN -(BIN-MOD(BIN, 100));
TEMP:=(TEMP-MOD(TEMP, 10))/10;
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'ON';
WHEN 2 THEN
RET:=RET||'YİRMİ';
WHEN 3 THEN
RET:=RET||'OTUZ';
WHEN 4 THEN
RET:=RET||'KIRK';
WHEN 5 THEN
RET:=RET||'ELLİ';
WHEN 6 THEN
RET:=RET||'ALTMIŞ';
WHEN 7 THEN
RET:=RET||'YETMİŞ';
WHEN 8 THEN
RET:=RET||'SEKSEN';
WHEN 9 THEN
RET:=RET||'DOKSAN';
END CASE;
TEMP:=BIN-(BIN-MOD(BIN, 100));
TEMP:=MOD(TEMP, 10);
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
IF BIN>9 THEN
RET:=RET||'BİR';
END IF;
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
RET:=RET||'BİN';
END IF;
IF YUZ >0 THEN
IF YUZ>99 THEN
CASE ((YUZ-MOD(YUZ, 100))/100)
WHEN 1 THEN
RET:=RET||'';
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
RET:=RET||'YÜZ';
END IF;
TEMP:=YUZ -(YUZ-MOD(YUZ, 100));
TEMP:=(TEMP-MOD(TEMP, 10))/10;
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'ON';
WHEN 2 THEN
RET:=RET||'YİRMİ';
WHEN 3 THEN
RET:=RET||'OTUZ';
WHEN 4 THEN
RET:=RET||'KIRK';
WHEN 5 THEN
RET:=RET||'ELLİ';
WHEN 6 THEN
RET:=RET||'ALTMIŞ';
WHEN 7 THEN
RET:=RET||'YETMİŞ';
WHEN 8 THEN
RET:=RET||'SEKSEN';
WHEN 9 THEN
RET:=RET||'DOKSAN';
END CASE;
TEMP:=YUZ-(YUZ-MOD(YUZ, 100));
TEMP:=MOD(TEMP, 10);
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'BİR';
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
END IF;
RET:=RET||' TL';
IF KR>0 THEN
RET:=RET||' ';
IF KR >9 THEN
TEMP := (KR-MOD(KR, 10))/10;
CASE TEMP
WHEN 0 THEN
RET:=RET||' ';
WHEN 1 THEN
RET:=RET||'ON';
WHEN 2 THEN
RET:=RET||'YİRMİ';
WHEN 3 THEN
RET:=RET||'OTUZ';
WHEN 4 THEN
RET:=RET||'KIRK';
WHEN 5 THEN
RET:=RET||'ELLİ';
WHEN 6 THEN
RET:=RET||'ALTMIŞ';
WHEN 7 THEN
RET:=RET||'YETMİŞ';
WHEN 8 THEN
RET:=RET||'SEKSEN';
WHEN 9 THEN
RET:=RET||'DOKSAN';
END CASE;
END IF;
TEMP:=KR-(KR-MOD(KR, 10));
CASE TEMP
WHEN 0 THEN
RET:=RET||'';
WHEN 1 THEN
RET:=RET||'BİR';
WHEN 2 THEN
RET:=RET||'İKİ';
WHEN 3 THEN
RET:=RET||'ÜÇ';
WHEN 4 THEN
RET:=RET||'DÖRT';
WHEN 5 THEN
RET:=RET||'BEŞ';
WHEN 6 THEN
RET:=RET||'ALTI';
WHEN 7 THEN
RET:=RET||'YEDİ';
WHEN 8 THEN
RET:=RET||'SEKİZ';
WHEN 9 THEN
RET:=RET||'DOKUZ';
END CASE;
RET:=RET||' KR';
END IF;
RETURN RET;
END YAZIYLAYAZ;
19 Mayıs 2009 Salı
Oracle PL/SQL Sayıyı Yazıyla Yazdırma
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder