CREATE OR REPLACE PROCEDURE CONVERT_16_10
/*16进制转10进制,双字节算法实现*/
(
I_DATA VARCHAR2,
O_DATA OUT VARCHAR2
)
AS
V_TMP_BEGIN INT;
V_TMP_LEN INT;
V_TMP_VAL INT := 0;
V_TMP_TEXT VARCHAR2(1);
V_TMP_DATA VARCHAR2(100);
BEGIN
IF I_DATA IS NULL THEN
RETURN;
ELSE
V_TMP_BEGIN := 1;
V_TMP_LEN := LENGTH(I_DATA);
IF V_TMP_LEN > 8 THEN
RETURN;
END IF;
IF V_TMP_LEN = 1 AND I_DATA = '0' THEN
O_DATA := '0';
RETURN;
END IF;
END IF;
WHILE V_TMP_BEGIN <= V_TMP_LEN LOOP
V_TMP_TEXT := SUBSTR(I_DATA, V_TMP_BEGIN, 1);
IF V_TMP_TEXT NOT IN
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F') THEN
RETURN;
END IF;
IF V_TMP_TEXT = '1' THEN
V_TMP_DATA := V_TMP_DATA || '0001 ';
ELSIF V_TMP_TEXT = '2' THEN
V_TMP_DATA := V_TMP_DATA || '0010 ';
ELSIF V_TMP_TEXT = '3' THEN
V_TMP_DATA := V_TMP_DATA || '0011 ';
ELSIF V_TMP_TEXT = '4' THEN
V_TMP_DATA := V_TMP_DATA || '0100 ';
ELSIF V_TMP_TEXT = '5' THEN
V_TMP_DATA := V_TMP_DATA || '0101 ';
ELSIF V_TMP_TEXT = '6' THEN
V_TMP_DATA := V_TMP_DATA || '0110 ';
ELSIF V_TMP_TEXT = '7' THEN
V_TMP_DATA := V_TMP_DATA || '0111 ';
ELSIF V_TMP_TEXT = '8' THEN
V_TMP_DATA := V_TMP_DATA || '1000 ';
ELSIF V_TMP_TEXT = '9' THEN
V_TMP_DATA := V_TMP_DATA || '1001 ';
ELSIF V_TMP_TEXT = 'A' THEN
V_TMP_DATA := V_TMP_DATA || '1010 ';
ELSIF V_TMP_TEXT = 'B' THEN
V_TMP_DATA := V_TMP_DATA || '1011 ';
ELSIF V_TMP_TEXT = 'C' THEN
V_TMP_DATA := V_TMP_DATA || '1100 ';
ELSIF V_TMP_TEXT = 'D' THEN
V_TMP_DATA := V_TMP_DATA || '1101 ';
ELSIF V_TMP_TEXT = 'E' THEN
V_TMP_DATA := V_TMP_DATA || '1110 ';
ELSIF V_TMP_TEXT = 'F' THEN
V_TMP_DATA := V_TMP_DATA || '1111 ';
ELSE
V_TMP_DATA := V_TMP_DATA || '0000 ';
END IF;
V_TMP_BEGIN := V_TMP_BEGIN + 1;
END LOOP;
O_DATA := REPLACE(V_TMP_DATA, ' ', '');
IF LENGTH(O_DATA) = 32 THEN
-- 初始值要么为0,要么为最小值
V_TMP_VAL := TO_NUMBER(SUBSTR(O_DATA, 1, 1)) * POWER(2, 31) * -1;
-- 重新初始化字符串对象
O_DATA := SUBSTR(O_DATA, 2);
END IF;
V_TMP_BEGIN := 1;
V_TMP_LEN := LENGTH(O_DATA);
WHILE V_TMP_BEGIN <= V_TMP_LEN LOOP
IF SUBSTR(O_DATA, V_TMP_BEGIN, 1) = '1' THEN
V_TMP_VAL := V_TMP_VAL + POWER(2, V_TMP_LEN - V_TMP_BEGIN);
END IF;
V_TMP_BEGIN := V_TMP_BEGIN + 1;
END LOOP;
O_DATA := TO_CHAR(V_TMP_VAL);
END;
分享到:
相关推荐
值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 中获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。...
58 <br>0081 文本中首字母改为大写 59 <br>0082 C#随机数的产生 59 <br>0083 身份证从15位升至18位算法 60 <br>0084 十进制数转二进制数的算法 60 <br>0085 十进制数转八进制数的算法 61...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
这是一个实现了 Yen 的排名算法的无环路径的项目 Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是...
A:8 B:16 C:32 D:128 答案:C Access的数据表中删除一条记录,被删除的记录( )。 A:不能恢复 B:可恢复为第一条记录 20春学期《大学计算机基础》在线作业全文共12页,当前为第1页。C:可恢复为最后一条记录 20春...
INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP:X-Internet签字文件 ...