欢迎光临
我们一直在努力

oracle_16进制与10进制转换小示例

–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

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。