如何在Oracle中将字节字符串转换为数字?

问题描述:

我想将一个像'1001'这样的字节字符串转换为整数值9,那么在Oracle中是否有标准函数?如何在Oracle中将字节字符串转换为数字?

BTW我发现http://www.orafaq.com/wiki/Binary

定制的解决方案AFAIK有没有内置在甲骨文功能,虽然可以使用所提供的解决方案诠释,他在帖子中

+0

感谢您的回答。 – 2011-06-21 13:39:05

链接查看here从汤姆·库Kyte做这些类型的转换。

在这种情况下,你必须:

select to_dec('1001', 2) from dual; 
+0

感谢您的回答,现在我只使用二进制wiki页面上描述的信息。 – 2011-06-21 13:40:01

我在Oracle使用CONNECT BY将二进制转换简单SELECT声明为十进制尝试此。最后使用下面的代码得到所需的输出。

WITH INPUT AS 
(SELECT REVERSE('&N') AS X FROM DUAL) 
SELECT SUM(TO_NUMBER(SUBSTR(X,LEVEL,1)*POWER(2,LEVEL-1))) AS OUTPUT 
FROM INPUT CONNECT BY LEVEL<=LENGTH(X);