我是没有找到,但我以前写过一个函数,可以让给你
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;
/
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;
/
SQL> select to_char(10,'0x') from dual;TO_
---
0a十六进制到十进制:
SQL> select to_number('12','XXX') from dual;TO_NUMBER('12','XXX')
---------------------
18
select to_char(10,'0x') from dual;
select to_number('12','XXX') from dual;
不支持
说到一块儿去了。
对了,bzszp(SongZip) 的在8i以上是支持的。
由于很久没有使用8i,也不知道这个新特性了,
只知道自己写