oracle_16進位制與10進位制轉換小示例

東北胖子發表於2020-02-12

--16進位制轉10進位制,用to_number,裡面的引數是16進位制的資料,且引數用單引號括起
SQL> select to_number('ff','xx') from dual;
 
TO_NUMBER('FF','XX')
--------------------
                 255
 
--10進位制轉16進位制,用to_char,裡面的引數是10進位制的資料,且引數不用單引號括起
SQL> select to_char(255,'xx') from dual;
 
TO_CHAR(255,'XX')
-----------------
 ff
 
--如下報錯因為要轉換的16進位制的資料寬度與格式串的xx寬度不一樣
SQL> select to_number('10effff','xx') from dual;
 
select to_number('10effff','xx') from dual
 
ORA-01722: 無效數字
 
--續上,修正二者寬度一致,不再報錯
SQL> select to_number('10effff','xxxxxxx') from dual;
 
TO_NUMBER('10EFFFF','XXXXXXX')
------------------------------
                      17760255
 

--格式串的寬度>=要轉化的資料寬度也可以
SQL> select to_number('10effff','xxxxxxx') from dual;
 
TO_NUMBER('10EFFFF','XXXXXXX')
------------------------------
                      17760255
 
SQL> select to_number('e','xxxxxxx') from dual;
 
TO_NUMBER('E','XXXXXXX')
------------------------
                      14

 
————————————————
版權宣告:本文為CSDN博主「Data & Safe」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/w892824196/article/details/98938379

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2317695/viewspace-2675283/,如需轉載,請註明出處,否則將追究法律責任。

相關文章