Oracle:如何在Oracle SQL中将十六进制转换为十进制?

Mat*_*ell 22 database oracle hex

如何使用Oracle SQL将十六进制转换为十进制(然后再返回)?

Pet*_*ros 36

如果您使用的是8.1.5及以上版本,则可以使用:

要从十六进制转换为十进制:

select to_number('AA', 'xx') from dual;     
Run Code Online (Sandbox Code Playgroud)

要从十进制转换为十六进制:

select to_char(111, 'xxxx') from dual;
Run Code Online (Sandbox Code Playgroud)

  • 感谢您在回答中将十进制数字共享为十六进制数字,即使它超出了OP的问题. (2认同)

Qua*_*noi 11

SELECT  TO_NUMBER('DEADBEEF', 'XXXXXXXX')
FROM    dual

---
3735928559

SELECT  TO_CHAR(3735928559, 'XXXXXXXX')
FROM    dual
---
 DEADBEEF
Run Code Online (Sandbox Code Playgroud)


dev*_*vio 5

从Oracle8i开始,TO_CHAR和TO_NUMBER函数可以处理从基数10(十进制)到基数16(十六进制)的转换,然后再返回:

SQL> select to_char(123,'XX') to_hex, 
2    to_number('7B','XX') from_hex   
3   from dual  
4  /   
TO_     FROM_HEX
------  -----------------
7B     123
Run Code Online (Sandbox Code Playgroud)

资源