我是没有找到,但我以前写过一个函数,可以让给你
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;
/create or replace function HexToDec(icHex in varchar2) 
return varchar2 is
  iDecimal INTEGER;
  cNewHex VARCHAR2(1);
  iHexlen INTEGER;
  Result INTEGER;
BEGIN
  Result :=0;
  iHexlen := length(icHex);
  FOR i IN 1..iHexlen LOOP
     cNewHex :=substr(icHex,iHexlen - i + 1,1);
     SELECT decode(cNewHex,'A',10,'B',11,'C',12,'D',13,'E',14,'F',15,TO_NUMBER(cNewHex)) 
           INTO iDecimal FROM DUAL;
     Result := Result + iDecimal * power(16,(i-1));
  END LOOP;
  return(to_char(Result));
end HexToDec;
/

解决方案 »

  1.   

    十进制到十六进制:
    SQL> select to_char(10,'0x') from dual;TO_
    ---
     0a十六进制到十进制:
    SQL> select to_number('12','XXX') from dual;TO_NUMBER('12','XXX')
    ---------------------
                       18
      

  2.   

    但是在805中
    select to_char(10,'0x') from dual;
    select to_number('12','XXX') from dual;
    不支持
      

  3.   

    我的数据库是805,除了penitent的办法,还有办法吗?
      

  4.   

    呵呵,我大部分时间用的都是805,
    说到一块儿去了。
    对了,bzszp(SongZip) 的在8i以上是支持的。
    由于很久没有使用8i,也不知道这个新特性了,
    只知道自己写