- 浏览: 116319 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
niezhihong:
Java代码 Contact selContact = (C ...
liferay 日历使用 -
释皇天:
<script language="javas ...
js获得当前日期和昨天日期 -
释皇天:
火狐下可以不???貌似不可以。
js获得当前日期和昨天日期 -
plj123:
今天遇到这个问题了,用outerHTML会报未知运行时错误。 ...
js删除tr -
javaray:
遨豪(大连)科技有限公司自2007年与Liferay,Inc合 ...
liferay 中的经常使用的
引用
转至网络,未经测试
Oracle里二进制、八进制、十进制、十六进制之间的互相转换 --各进制之间转换 CREATE OR REPLACE TYPE type_str_agg AS OBJECT ( total VARCHAR2(4000), STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg) RETURN NUMBER, MEMBER FUNCTION odciaggregateiterate ( SELF IN OUT type_str_agg, VALUE IN VARCHAR2 ) RETURN NUMBER, MEMBER FUNCTION odciaggregateterminate ( SELF IN type_str_agg, returnvalue OUT VARCHAR2, flags IN NUMBER ) RETURN NUMBER, MEMBER FUNCTION odciaggregatemerge ( SELF IN OUT type_str_agg, ctx2 IN type_str_agg ) RETURN NUMBER ) / CREATE OR REPLACE TYPE BODY type_str_agg IS STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg) RETURN NUMBER IS BEGIN sctx := type_str_agg(NULL); RETURN odciconst.success; END; MEMBER FUNCTION odciaggregateiterate ( SELF IN OUT type_str_agg, VALUE IN VARCHAR2 ) RETURN NUMBER IS BEGIN SELF.total := SELF.total || VALUE; RETURN odciconst.success; END; MEMBER FUNCTION odciaggregateterminate ( SELF IN type_str_agg, returnvalue OUT VARCHAR2, flags IN NUMBER ) RETURN NUMBER IS BEGIN returnvalue := SELF.total; RETURN odciconst.success; END; MEMBER FUNCTION odciaggregatemerge ( SELF IN OUT type_str_agg, ctx2 IN type_str_agg ) RETURN NUMBER IS BEGIN SELF.total := SELF.total || ctx2.total; RETURN odciconst.success; END; END; / CREATE OR REPLACE FUNCTION f_stragg(p_input VARCHAR2) RETURN VARCHAR2 PARALLEL_ENABLE AGGREGATE USING type_str_agg; / CREATE OR REPLACE PACKAGE pkg_number_trans IS FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2; FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2; END pkg_number_trans; / CREATE OR REPLACE PACKAGE BODY pkg_number_trans IS FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_bin_to_oct -- 对象描述: 二进制转换八进制 -- 输入参数: p_str 二进制字符串 -- 返回结果: 八进制字符串 -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct('11110001010') FROM dual; -- 备 注: 需要定义f_stragg函数和type_str_agg类型 ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_bin VARCHAR2(4000); BEGIN v_bin := substr('00' || p_str, -3 * ceil(length(p_str) / 3)); SELECT f_stragg(data1) INTO v_return FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3)) WHEN '000' THEN '0' WHEN '001' THEN '1' WHEN '010' THEN '2' WHEN '011' THEN '3' WHEN '100' THEN '4' WHEN '101' THEN '5' WHEN '110' THEN '6' WHEN '111' THEN '7' END) data1 FROM dual CONNECT BY rownum <= length(v_bin) / 3); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_bin_to_oct; FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_bin_to_dec -- 对象描述: 二进制转换十进制 -- 输入参数: p_str 二进制字符串 -- 返回结果: 十进制字符串 -- 测试用例: SELECT pkg_number_trans.f_bin_to_dec('11110001010') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT SUM(data1) INTO v_return FROM (SELECT substr(p_str, rownum, 1) * power(2, length(p_str) - rownum) data1 FROM dual CONNECT BY rownum <= length(p_str)); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_bin_to_dec; FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_bin_to_hex -- 对象描述: 二进制转换十六进制 -- 输入参数: p_str 二进制字符串 -- 返回结果: 十六进制字符串 -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct('11110001010') FROM dual; -- 备 注: 需要定义f_stragg函数和type_str_agg类型 ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_bin VARCHAR2(4000); BEGIN v_bin := substr('000' || p_str, -4 * ceil(length(p_str) / 4)); SELECT f_stragg(data1) INTO v_return FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 4 + 1, 4)) WHEN '0000' THEN '0' WHEN '0001' THEN '1' WHEN '0010' THEN '2' WHEN '0011' THEN '3' WHEN '0100' THEN '4' WHEN '0101' THEN '5' WHEN '0110' THEN '6' WHEN '0111' THEN '7' WHEN '1000' THEN '8' WHEN '1001' THEN '9' WHEN '1010' THEN 'A' WHEN '1011' THEN 'B' WHEN '1100' THEN 'C' WHEN '1101' THEN 'D' WHEN '1110' THEN 'E' WHEN '1111' THEN 'F' END) data1 FROM dual CONNECT BY rownum <= length(v_bin) / 4); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_bin_to_hex; FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_oct_to_bin -- 对象描述: 八进制转换二进制 -- 输入参数: p_str 八进制字符串 -- 返回结果: 二进制字符串 -- 测试用例: SELECT pkg_number_trans.f_oct_to_bin('3612') FROM dual; -- 备 注: 需要定义f_stragg函数和type_str_agg类型 ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT to_char(to_number(f_stragg(data1))) INTO v_return FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) WHEN '0' THEN '000' WHEN '1' THEN '001' WHEN '2' THEN '010' WHEN '3' THEN '011' WHEN '4' THEN '100' WHEN '5' THEN '101' WHEN '6' THEN '110' WHEN '7' THEN '111' END) data1 FROM dual CONNECT BY rownum <= length(p_str)); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_oct_to_bin; FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_oct_to_dec -- 对象描述: 八进制转换十进制 -- 输入参数: p_str 八进制字符串 -- 返回结果: 十进制字符串 -- 测试用例: SELECT pkg_number_trans.f_oct_to_dec('3612') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT SUM(data1) INTO v_return FROM (SELECT substr(p_str, rownum, 1) * power(8, length(p_str) - rownum) data1 FROM dual CONNECT BY rownum <= length(p_str)); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_oct_to_dec; FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_oct_to_bin -- 对象描述: 八进制转换十六进制 -- 输入参数: p_str 八进制字符串 -- 返回结果: 十六进制字符串 -- 测试用例: SELECT pkg_number_trans.f_oct_to_hex('3612') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_bin VARCHAR2(4000); BEGIN SELECT pkg_number_trans.f_oct_to_bin(p_str) INTO v_bin FROM dual; SELECT pkg_number_trans.f_bin_to_hex(v_bin) INTO v_return FROM dual; RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_oct_to_hex; FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_dec_to_bin -- 对象描述: 十进制转换二进制 -- 输入参数: p_str 十进制字符串 -- 返回结果: 二进制字符串 -- 测试用例: SELECT pkg_number_trans.f_dec_to_bin('1930') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_hex VARCHAR2(4000); BEGIN SELECT pkg_number_trans.f_dec_to_hex(p_int) INTO v_hex FROM dual; SELECT pkg_number_trans.f_hex_to_bin(v_hex) INTO v_return FROM dual; RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_dec_to_bin; FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_dec_to_oct -- 对象描述: 十进制转换八进制 -- 输入参数: p_str 十进制字符串 -- 返回结果: 八进制字符串 -- 测试用例: SELECT pkg_number_trans.f_dec_to_oct('1930') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_bin VARCHAR2(4000); BEGIN SELECT pkg_number_trans.f_dec_to_bin(p_int) INTO v_bin FROM dual; v_bin := substr('00' || v_bin, -3 * ceil(length(v_bin) / 3)); SELECT f_stragg(data1) INTO v_return FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3)) WHEN '000' THEN '0' WHEN '001' THEN '1' WHEN '010' THEN '2' WHEN '011' THEN '3' WHEN '100' THEN '4' WHEN '101' THEN '5' WHEN '110' THEN '6' WHEN '111' THEN '7' END) data1 FROM dual CONNECT BY rownum <= length(v_bin) / 3); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_dec_to_oct; FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_dec_to_oct -- 对象描述: 十进制转换十六进制 -- 输入参数: p_str 十进制字符串 -- 返回结果: 十六进制字符串 -- 测试用例: SELECT pkg_number_trans.f_dec_to_hex('1930') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT upper(TRIM(to_char(p_int, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'))) INTO v_return FROM dual; RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_dec_to_hex; FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_dec_to_oct -- 对象描述: 十六进制转换二进制 -- 输入参数: p_str 十六进制字符串 -- 返回结果: 二进制字符串 -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct('78A') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT to_char(to_number(f_stragg(data1))) INTO v_return FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) WHEN '0' THEN '0000' WHEN '1' THEN '0001' WHEN '2' THEN '0010' WHEN '3' THEN '0011' WHEN '4' THEN '0100' WHEN '5' THEN '0101' WHEN '6' THEN '0110' WHEN '7' THEN '0111' WHEN '8' THEN '1000' WHEN '9' THEN '1001' WHEN 'A' THEN '1010' WHEN 'B' THEN '1011' WHEN 'C' THEN '1100' WHEN 'D' THEN '1101' WHEN 'E' THEN '1110' WHEN 'F' THEN '1111' END) data1 FROM dual CONNECT BY rownum <= length(p_str)); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_hex_to_bin; FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_dec_to_oct -- 对象描述: 十六进制转换八进制 -- 输入参数: p_str 十六进制字符串 -- 返回结果: 八进制字符串 -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct('78A') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); v_bin VARCHAR2(4000); BEGIN SELECT pkg_number_trans.f_hex_to_bin(p_str) INTO v_bin FROM dual; SELECT pkg_number_trans.f_bin_to_oct(v_bin) INTO v_return FROM dual; RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_hex_to_oct; FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS ---------------------------------------------------------------------------------------------------------------------- -- 对象名称: f_hex_to_dec -- 对象描述: 十六进制转换十进制 -- 输入参数: p_str 十六进制字符串 -- 返回结果: 十进制字符串 -- 测试用例: SELECT pkg_number_trans.f_hex_to_dec('78A') FROM dual; ---------------------------------------------------------------------------------------------------------------------- v_return VARCHAR2(4000); BEGIN SELECT SUM(data1) INTO v_return FROM (SELECT (CASE upper(substr(p_str, rownum, 1)) WHEN 'A' THEN '10' WHEN 'B' THEN '11' WHEN 'C' THEN '12' WHEN 'D' THEN '13' WHEN 'E' THEN '14' WHEN 'F' THEN '15' ELSE substr(p_str, rownum, 1) END) * power(16, length(p_str) - rownum) data1 FROM dual CONNECT BY rownum <= length(p_str)); RETURN v_return; EXCEPTION WHEN OTHERS THEN RETURN NULL; END f_hex_to_dec; END pkg_number_trans; /
发表评论
-
oracle
2014-10-31 12:03 610oracle执行计划,百度文库文档,以备后用 -
oracle 查询两表之间差异
2013-03-14 16:02 722oracle 查询两个表的差别 比如 表1 create ... -
oracle 递归查询
2012-09-17 15:52 0select a.title,a.asset_id,a.c ... -
oracle归档错误
2011-08-12 14:23 782ORA-16038: log 2 sequence# 242 ... -
存储过程
2010-10-29 14:16 790create or replace trigger repor ... -
触发器
2010-10-18 16:59 823create or replace trigger rep ... -
oracle cursor
2009-08-10 17:01 1199declare cursor c1 is select f ... -
oracle函數大全
2009-07-29 11:21 764SQL中的单记录函数 1.ASCII 返回与指定的字符对应 ... -
Oracle数据库字符集问题解决方案大全
2009-07-10 11:23 1086原文来自:http://www.oracl ... -
oracle function
2009-07-07 17:04 0create or replace function test ... -
oracle备忘递归查询
2009-06-29 15:23 10271.Data dictionary Objects sour ... -
oracle 語法命令備忘
2009-06-23 17:33 1184[/color][color=green]1.利用现有的表创建 ...
相关推荐
辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 ...
计算机各种进制转换练习题 计算机中的进制转换是计算机科学和信息技术中的一种基本概念。它是指在不同进制系统之间进行数值表示的转换,例如十进制、 二进制、八进制、十六进制等。下面是计算机各种进制转换的练习...
"进制转换练习题及答案39资料.pdf" 本文档提供了39道进制转换练习题及答案,涵盖二进制、十进制、十六进制之间的转换,ASCII 码、汉字国标码、商品条形码等标准化编码的知识点。通过这些练习题,可以帮助学生和从业...
进制转换练习题
进制转换:10;2,8,16 及 2;16的相互转换, 支持小数(适合计算机等级考试基础题)其中10进制支持负数 .字符转换:字符转换为10进制(ASCII码)并且可偏移ASCII码,及16进制及其逆操作。 转换为10进制的双字节字符...
"计算机各种进制转换练习题" 计算机进制转换是计算机科学中的一种基本概念,指的是将不同进制的数字进行相互转换,如十进制、 二进制、八进制、十六进制等。这种转换在计算机科学和编程中有着广泛的应用。 在本...
C语言,实现进制转换,十进制转换为十六进制 例如输入10,转换结果为a
基于单片机(AT89C51)的进制转换及进制计算器.rar
2~62进制转换器 支持整数 小数转换 非常好用的小工具
SQL语句写的各进制之间互相转换,如二进制转换十进制,八进制转换十六进制等等
十六进制转换十六进制转换十六进制转换十六进制转换
进制转换C源码 根据毕向东Java基础教程中讲解的进制转换原理写出来的C语言代码,C语言还是和Java差别太大,没有无符号右移>>>太难搞了,不过还算搞定了吧
进制转换练习题及答案 本资源是一个进制转换练习题及答案的PDF文件,涵盖了二进制、十进制、十六进制之间的转换、计算机内部信息存储和处理、ASCII码、汉字内码等知识点。 知识点1: 进制转换的基本概念 * 进制...
计算机中进制及进制转换 计算机中进制及进制转换是计算机科学的基础知识之一。了解进制和进制转换是学习计算机科学的基础,掌握了进制和进制转换,可以更好地理解计算机的工作原理和计算机科学的其他知识。 进制是...
16进制与有符号10进制间的相互转换,支持16进制数转换为有符号10进制数,或将有符号10进制转换为16进制数,可选包含1、2、4、8字节。
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
该资源利用栈的知识实现了进制转换,包含栈的建立,清空,压栈,出栈等基本操作,以及辗转相除法求余数
适用于在通讯时可以用到的实例,16进制转换为二进制,已经测试OK.
西门子TIA博途进制转换功能pdf,西门子TIA博途进制转换功能