Popüler Yayınlar

29 Şubat 2012 Çarşamba

Rakamı Yazıya Çeviren Oracle Fonksiyonu 2

Tek sayfaya tüm kodları sığdıramadığımdan kodların devamını yayınlıyorum.


CREATE OR REPLACE function BIRLER_BASAMAK(sayi IN INTEGER) return varchar2 is
  Result varchar2(50);
begin
  CASE
    WHEN sayi = 0 THEN Result := '';
    WHEN sayi = 1 THEN Result := 'Bir';
    WHEN sayi = 2 THEN Result := 'İki';
    WHEN sayi = 3 THEN Result := 'Üç';
    WHEN sayi = 4 THEN Result := 'Dört';
    WHEN sayi = 5 THEN Result := 'Beş';
    WHEN sayi = 6 THEN Result := 'Altı';
    WHEN sayi = 7 THEN Result := 'Yedi';
    WHEN sayi = 8 THEN Result := 'Sekiz';
    WHEN sayi = 9 THEN Result := 'Dokuz';
    END CASE;
  return(Result);
end BIRLER_BASAMAK;
/
CREATE OR REPLACE function ONLAR_BASAMAK(sayi IN INTEGER) return varchar2 is
  Result varchar2(50);
begin
  CASE
    WHEN sayi = 0 THEN Result := '';
    WHEN sayi = 1 THEN Result := 'On';
    WHEN sayi = 2 THEN Result := 'Yirmi';
    WHEN sayi = 3 THEN Result := 'Otuz';
    WHEN sayi = 4 THEN Result := 'Kırk';
    WHEN sayi = 5 THEN Result := 'Elli';
    WHEN sayi = 6 THEN Result := 'Altmış';
    WHEN sayi = 7 THEN Result := 'Yetmiş';
    WHEN sayi = 8 THEN Result := 'Seksen';
    WHEN sayi = 9 THEN Result := 'Doksan';
    END CASE;
  return(Result);
end ONLAR_BASAMAK;
/
CREATE OR REPLACE function UST_BASAMAK(sayi IN INTEGER) return varchar2 is
  Result varchar2(50);
begin
  CASE
    WHEN sayi = 0 THEN Result := '';
    WHEN sayi = 1 THEN Result := 'Yüz';
    WHEN sayi = 2 THEN Result := 'Bin';
    WHEN sayi = 3 THEN Result := 'Milyon';
    WHEN sayi = 4 THEN Result := 'Milyar';
    WHEN sayi = 5 THEN Result := 'Tirilyon';
    WHEN sayi = 6 THEN Result := 'Katrilyon';
    WHEN sayi = 7 THEN Result := 'Kentilyon';
    WHEN sayi = 8 THEN Result := 'Seksilyon';
    WHEN sayi = 9 THEN Result := 'Septilyon';
    END CASE;
  return(Result);
end UST_BASAMAK;
/
CREATE OR REPLACE function CONVERT_MONEY_TO_CHAR_TR(numberToConvert IN NUMBER,
                                                    currencyStr IN VARCHAR2,
                                                    currencyKurusStr IN VARCHAR2,
                                                    decimalStr IN VARCHAR2) return varchar2 is
  Result varchar2(500);
  absoluteNumber number;
  absolueNumberStr varchar2(500);
  decimalNumber number;
  decimalNumberStr varchar2(500);
begin
  absoluteNumber := TO_NUMBER(SUBSTR(TO_CHAR(numberToConvert),1,INSTR(TO_CHAR(numberToConvert),decimalStr)));
  decimalNumber := TO_NUMBER(SUBSTR(TO_CHAR(numberToConvert),INSTR(TO_CHAR(numberToConvert),decimalStr) + 1,LENGTH(TO_CHAR(numberToConvert))));
  absolueNumberStr := CONVERT_NUMBER_TO_CHAR_TR(absoluteNumber);
  decimalNumberStr := CONVERT_NUMBER_TO_CHAR_TR(decimalNumber);
  Result := absolueNumberStr || ' ' || currencyStr || ' ' || decimalNumberStr || ' ' || currencyKurusStr;
  return(Result);
end CONVERT_MONEY_TO_CHAR_TR;
/