1. 程式人生 > >十進位制和十六進位制之間的轉換函式總結

十進位制和十六進位制之間的轉換函式總結


二)下面是構造的函式,非oracle自帶函式
 --十進位制轉十六進位制
 create   or   replace   function   DecToHex(iDecimal   IN   VARCHAR2)
  return   varchar2   is
      nDecimal   INTEGER;
      Quotient   INTEGER;
      Residue   INTEGER;
      Result   varchar2(50);
  BEGIN
      nDecimal   :=   to_number(iDecimal);
  LOOP
      Quotient   :=   FLOOR(nDecimal/16);
      Residue   :=   nDecimal   MOD   16;
      SELECT   Decode(Residue,10,'A',11,'B',12,'C',13,'D',14,'E',15,'F',TO_CHAR(Residue))   ||   Result
              INTO   Result   FROM   DUAL;
      EXIT   WHEN   Quotient   =   0;
      nDecimal   :=   Quotient;
  END   LOOP;
            return(Result);
  end   DecToHex;
  /