Oracle通过函数进行进制转化
2015-05-19 13:35
405 查看
十六进制转化为十进制:to_number()
十进制转化为二进制
ASCII码及ORACLE元数据转换函数:RAWTOHEX和HEXTORAW
本文出自 “LinuxOracle” 博客,请务必保留此出处http://onlinekof2001.blog.51cto.com/3106724/1652746
SQL> select to_number('a','x') from dual; TO_NUMBER('A','X') ------------------ 10十进制转化为十六进制:to_char()
SQL> select to_char(10,'xxx') from dual; TO_CHAR(10,' ------------ a二进制没有办法直接转化可以通过函数实现:
十进制转化为二进制
CREATE OR REPLACE FUNCTION NUMBER_TO_BIT(V_NUM NUMBER) RETURN VARCHAR IS V_RTN VARCHAR(8);--注意返回列长度 V_N1 NUMBER; V_N2 NUMBER; BEGIN V_N1 := V_NUM; LOOP V_N2 := MOD(V_N1, 2); V_N1 := ABS(TRUNC(V_N1 / 2)); --取商的绝对值 V_RTN := TO_CHAR(V_N2) || V_RTN; EXIT WHEN V_N1 = 0; END LOOP; --返回二进制长度 SELECT lpad(V_RTN,8,0) --八位不足补0 INTO V_RTN FROM dual; return V_RTN; end;二进制转化为十进制:
CREATE OR REPLACE FUNCTION BIT_TO_NUMBER(P_BIN IN VARCHAR2) RETURN NUMBER AS V_SQL VARCHAR2(30000) := 'SELECT BIN_TO_NUM('; V_RETURN NUMBER; BEGIN IF LENGTH(P_BIN) >= 256 THEN RAISE_APPLICATION_ERROR(-20001, 'INPUT BIN TOO LONG!'); END IF; IF LTRIM(P_BIN, '01') IS NOT NULL THEN RAISE_APPLICATION_ERROR(-20002, 'INPUT STR IS NOT VALID BIN VALUE!'); END IF; FOR I IN 1 .. LENGTH(P_BIN) LOOP V_SQL := V_SQL || SUBSTR(P_BIN, I, 1) || ','; END LOOP; V_SQL := RTRIM(V_SQL, ',') || ') FROM DUAL'; EXECUTE IMMEDIATE V_SQL INTO V_RETURN; RETURN V_RETURN; END;创建函数同义词
create public synonym number_to_bit for number_to_bit; grant execute on number_to_bit to public十六转二和二转十六,则可以结合十转十六函数和二转十函数进行,这里不在额外举例。
ASCII码及ORACLE元数据转换函数:RAWTOHEX和HEXTORAW
SQL> select rawtohex(1) from dual; RAWTOHEX(1) ------------ C102 SQL> select rawtohex('1') from dual; RAWTOH ------ 31 SQL> select rawtohex('a') from dual; RAWTOH ------ 61 SQL> select rawtohex('A') from dual; RAWTOH ------ 41 SQL> select hextoraw('A') from dual; HE -- 0A SQL> select hextoraw('1') from dual; HE -- 01
本文出自 “LinuxOracle” 博客,请务必保留此出处http://onlinekof2001.blog.51cto.com/3106724/1652746
相关文章推荐
- Mysql-通过case..when实现oracle decode()函数进行多值多结果判断
- 一个用 Oracle 函数索引进行优化的例子
- GreenPlum 集群中通过orafunc实现Oracle兼容函数
- Android客户端与服务器端通过SOCKET连接进行读写(将JSON数据转化为字符串后传输)
- 无法通过su - oracle进行用户切换 su: incorrect password
- 利用Oracle内置分析函数进行高效统计汇总(1)
- Qt5.9Creator登录界面函数总结(通过连接远程服务器数据库MySql5.7.17进行登录用户名和密码验证)
- oracle中通过DBMS_CRYPTO包对表敏感字段进行加密
- 在SQL server 中DATEDIFF函数,在Oracle中用下面的在oracle里建立个函数转化下
- 数组通过array_push函数进行排序 及 选择排序
- oracle函数 exp()和ln()进行相乘
- Oracle E-Delivery网站发布了ALBPM 6.0.4最新版本,而不是通过BEA的网站进行发布
- Oracle-函数Decode进行多值判断
- STM32通过调用库函数进行编程
- 利用Oracle内置分析函数进行高效统计汇总
- 用C#实现将汉字转化为拼音,其实现原理就是先将汉字转化为内码,然后通过内码和拼音的对照表来进行查找。
- java中通过调用oracle的function进行数据库操作
- oracle 中对函数,过程进行加解密
- 通过数据库编程进行递归(Oracle)
- oracle函数进行日期格式转换