create or replace
FUNCTION "TENTOHX" (ix IN NUMBER) RETURN VARCHAR2
IS
rx VARCHAR2(10);
ixx NUMBER(10);
BEGIN
rx:='';
ixx:=ix;
WHILE MOD(ixx,16)>0 LOOP
rx:=
(CASE
WHEN MOD(ixx,16)<=9 THEN CAST(MOD(ixx,16) AS VARCHAR2)
WHEN MOD(ixx,16)=10 THEN 'A'
WHEN MOD(ixx,16)=11 THEN 'B'
WHEN MOD(ixx,16)=12 THEN 'C'
WHEN MOD(ixx,16)=13 THEN 'D'
WHEN MOD(ixx,16)=14 THEN 'E'
WHEN MOD(ixx,16)=15 THEN 'F'
END)||rx;
ixx:=FLOOR(ixx/16);
END LOOP;
IF ixx>0 THEN
rx:=
(CASE
WHEN MOD(ixx,16)<=9 THEN CAST(MOD(ixx,16) AS VARCHAR2)
WHEN MOD(ixx,16)=10 THEN 'A'
WHEN MOD(ixx,16)=11 THEN 'B'
WHEN MOD(ixx,16)=12 THEN 'C'
WHEN MOD(ixx,16)=13 THEN 'D'
WHEN MOD(ixx,16)=14 THEN 'E'
WHEN MOD(ixx,16)=15 THEN 'F'
END)||rx;
END IF;
RETURN rx;
END TENTOHX;
oracle数据库十进制转十六进制
最新推荐文章于 2022-09-09 15:58:00 发布