Oracle中十进制与十六进制转换程序
来源:互联网 发布:qq自动加人软件 编辑:程序博客网 时间:2024/05/19 02:40
CREATE OR REPLACE PROCEDURE dec2hex (in_num IN NUMBER, out_hex OUT VARCHAR2)
IS
TYPE vc2tab_type IS TABLE OF VARCHAR2(1)
INDEX BY BINARY_INTEGER;
hextab vc2tab_type;
v_num NUMBER;
v_hex VARCHAR2(200);
/*
Author: Jonas Nordstrom
*/
BEGIN
IF in_num IS NULL THEN RETURN NULL; END IF;
hextab (0) := '0';
hextab (1) := '1';
hextab (2) := '2';
hextab (3) := '3';
hextab (4) := '4';
hextab (5) := '5';
hextab (6) := '6';
hextab (7) := '7';
hextab (8) := '8';
hextab (9) := '9';
hextab (10) := 'A';
hextab (11) := 'B';
hextab (12) := 'C';
hextab (13) := 'D';
hextab (14) := 'E';
hextab (15) := 'F';
v_num := in_num;
WHILE v_num >= 16
LOOP
v_hex := hextab (MOD (v_num, 16)) v_hex;
v_num := TRUNC (v_num / 16);
END LOOP;
v_hex := hextab (MOD (v_num, 16)) v_hex;
out_hex := v_hex;
END; -- dec2hex
/
CREATE OR REPLACE FUNCTION hextointeger (h VARCHAR2)
RETURN PLS_INTEGER
IS
BEGIN
IF NVL (LENGTH (h), 1) = 1
THEN
RETURN INSTR ('0123456789ABCDEF', h) - 1;
ELSE
RETURN 16 * hextointeger (SUBSTR (h, 1, LENGTH (h) - 1))
INSTR ('0123456789ABCDEF', SUBSTR (h, -1)) -
1;
END IF;
END hextointeger;
/
CREATE OR REPLACE FUNCTION integertohex (n pls_integer) 软件开发网
RETURN VARCHAR2
IS
BEGIN
IF n > 0
THEN
RETURN integertohex (TRUNC (n / 16))
SUBSTR ('0123456789ABCDEF', MOD (n, 16) 1, 1);
ELSE
RETURN NULL;
END IF;
END integertohex;
/
IS
TYPE vc2tab_type IS TABLE OF VARCHAR2(1)
INDEX BY BINARY_INTEGER;
hextab vc2tab_type;
v_num NUMBER;
v_hex VARCHAR2(200);
/*
Author: Jonas Nordstrom
*/
BEGIN
IF in_num IS NULL THEN RETURN NULL; END IF;
hextab (0) := '0';
hextab (1) := '1';
hextab (2) := '2';
hextab (3) := '3';
hextab (4) := '4';
hextab (5) := '5';
hextab (6) := '6';
hextab (7) := '7';
hextab (8) := '8';
hextab (9) := '9';
hextab (10) := 'A';
hextab (11) := 'B';
hextab (12) := 'C';
hextab (13) := 'D';
hextab (14) := 'E';
hextab (15) := 'F';
v_num := in_num;
WHILE v_num >= 16
LOOP
v_hex := hextab (MOD (v_num, 16)) v_hex;
v_num := TRUNC (v_num / 16);
END LOOP;
v_hex := hextab (MOD (v_num, 16)) v_hex;
out_hex := v_hex;
END; -- dec2hex
/
CREATE OR REPLACE FUNCTION hextointeger (h VARCHAR2)
RETURN PLS_INTEGER
IS
BEGIN
IF NVL (LENGTH (h), 1) = 1
THEN
RETURN INSTR ('0123456789ABCDEF', h) - 1;
ELSE
RETURN 16 * hextointeger (SUBSTR (h, 1, LENGTH (h) - 1))
INSTR ('0123456789ABCDEF', SUBSTR (h, -1)) -
1;
END IF;
END hextointeger;
/
CREATE OR REPLACE FUNCTION integertohex (n pls_integer) 软件开发网
RETURN VARCHAR2
IS
BEGIN
IF n > 0
THEN
RETURN integertohex (TRUNC (n / 16))
SUBSTR ('0123456789ABCDEF', MOD (n, 16) 1, 1);
ELSE
RETURN NULL;
END IF;
END integertohex;
/
- Oracle中十进制与十六进制转换程序
- ORACLE十进制与十六进制的转换
- 十六进制 与 十进制转换
- 【c++程序】十六进制转换十进制
- 第二个小程序 十进制与十六进制的转换
- Oracle中二进制、八进制、十进制和十六进制相互转换函数
- 十六进制与十进制快速转换
- 十进制与十六进制相互转换
- 十六进制与十进制的转换
- 十进制数到十六进制转换程序
- 十进制转换为二进制、八进制、十六进制程序
- 十进制与十六进制的转换,二进制与十六进制的转换
- [C#] 十六进制 与 十进制 的互相转换
- 十进制与二进制八进制十六进制的转换
- 十进制与十六进制转换(面试题)
- 随笔十四:十进制与十六进制转换
- perl二进制,,十进制与十六进制转换
- 十六进制字符串与十进制的转换函数
- 学校里最温暖的地方~
- 黑马程序员-类加载器
- 调试原理(2)
- FIRST集和FOLLOW集
- How to use even ?
- Oracle中十进制与十六进制转换程序
- WM_DRAWITEM与DrawItem()的讨论
- SQL 语言支持
- WCF概要
- 精品之路
- 读书笔记[Android Beginning 2] chapter 4 Using XML-Based Layouts
- 1011 诗一样的石子
- ubuntu man手册完善
- 1013 喝醉的选手