masa error om? hehehe, script aku baek-baek aja koq. nie SQL hasil dumpingan
xf_terbilang() ku :


-- Function "xf_terbilang" DDL

CREATE [EMAIL PROTECTED] FUNCTION `xf_terbilang`(angka bigint)
RETURNS varchar(5000) CHARSET utf8
BEGIN

 DECLARE sString varchar(30);

 DECLARE Bil1 varchar(255);

 DECLARE Bil2 varchar(255);

 DECLARE STot varchar(255);

 DECLARE X int;

 DECLARE Y int;

 DECLARE Z int;

 DECLARE Urai varchar(5000);

 SET sString = CAST(angka as char);

 SET Urai = '';

 SET X = 0;

 SET Y = 0;

 WHILE X < LENGTH(sString) DO

  SET X = X + 1;

  SET sTot = MID(sString, X, 1);

  SET Y = Y + CAST(sTot as UNSIGNED);

  SET Z = LENGTH(sString) - X + 1;

  CASE CAST(sTot as UNSIGNED)

   WHEN 1 THEN

    BEGIN

     IF (Z = 1 OR Z = 7 OR Z = 10 OR Z = 13) THEN

      SET Bil1 = 'SATU ';

     ELSEIF (z = 4) THEN

      IF (x = 1) THEN

       SET Bil1 = 'SE';

      ELSE

       SET Bil1 = 'SATU';

      END IF;

     ELSEIF (Z = 2 OR Z = 5 OR Z = 8 OR Z = 11 OR Z = 14) THEN

      SET X = X + 1;

      SET sTot = MID(sString, X, 1);

      SET Z = LENGTH(sString) - X + 1;

      SET Bil2 = '';

      CASE CAST(sTot AS UNSIGNED)

       WHEN 0 THEN SET Bil1 = 'SEPULUH ';

       WHEN 1 THEN SET Bil1 = 'SEBELAS ';

       WHEN 2 THEN SET Bil1 = 'DUA BELAS ';

       WHEN 3 THEN SET Bil1 = 'TIGA BELAS ';

       WHEN 4 THEN SET Bil1 = 'EMPAT BELAS ';

       WHEN 5 THEN SET Bil1 = 'LIMA BELAS ';

       WHEN 6 THEN SET Bil1 = 'ENAM BELAS ';

       WHEN 7 THEN SET Bil1 = 'TUJUH BELAS ';

       WHEN 8 THEN SET Bil1 = 'DELAPAN BELAS ';

       WHEN 9 THEN SET Bil1 = 'SEMBILAN BELAS ';

      ELSE BEGIN END;

      END CASE;

     ELSE

      SET Bil1 = 'SE';

     END IF;

    END;

   WHEN 2 THEN SET Bil1 = 'DUA ';

   WHEN 3 THEN SET Bil1 = 'TIGA ';

   WHEN 4 THEN SET Bil1 = 'EMPAT ';

   WHEN 5 THEN SET Bil1 = 'LIMA ';

   WHEN 6 THEN SET Bil1 = 'ENAM ';

   WHEN 7 THEN SET Bil1 = 'TUJUH ';

   WHEN 8 THEN SET Bil1 = 'DELAPAN ';

   WHEN 9 THEN SET Bil1 = 'SEMBILAN ';

   ELSE SET Bil1 = '';

  END CASE;

  IF CAST(sTot as UNSIGNED) > 0 THEN

   IF (Z = 2 OR Z = 5 OR Z = 8 OR Z = 11 OR Z = 14) THEN

    SET Bil2 = 'PULUH ';

   ELSEIF (Z = 3 OR Z = 6 OR Z = 9 OR Z = 12 OR Z = 15) THEN

    SET Bil2 = 'RATUS ';

   ELSE

    SET Bil2 = '';

   END IF;

  ELSE

   SET Bil2 = '';

  END IF;

  IF Y > 0 THEN

   CASE Z

    WHEN 4 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'RIBU '); SET Y = 0; END;

    WHEN 7 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'JUTA '); SET Y = 0; END;

    WHEN 10 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'MILYAR '); SET Y = 0; END;

    WHEN 13 THEN BEGIN SET Bil2 = CONCAT(Bil2, 'TRILYUN '); SET Y = 0; END;

    ELSE BEGIN END;

   END CASE;

  END IF;

  SET Urai = CONCAT(Urai, Bil1, Bil2);

 END WHILE;

 RETURN Urai;

END;


contoh cara manggilnya :
mysql> select xf_terbilang(12345);
+---------------------------------------------+
| xf_terbilang(12345)                         |
+---------------------------------------------+
| DUA BELAS RIBU TIGA RATUS EMPAT PULUH LIMA  |
+---------------------------------------------+
1 row in set

baek2 aja koq.. hehehe. coba lagi deh om..


-- 
wassalam,

Rizky Prihanto
http://www.software-arsitek.web.id

Kirim email ke