IPv4存储在Oracle中(16进制/10进制方式混合)取出的SQL

简单一点写吧

选出IPv4的16进制的格式,并转换为10进制的SQL,比如:

C0A80001

转为

192.168.0.1

这样的格式

SQL代码

由于是混在一起的,所以需要先选出16进制的内容,转成10进制。

select 
to_number(substr(a.pdpaddr,1,2),'XX') || '.' ||
to_number(substr(a.pdpaddr,3,2),'XX') || '.' || 
to_number(substr(a.pdpaddr,5,2),'XX') || '.' ||
to_number(substr(a.pdpaddr,7,2),'XX') IP 
from SomeTable a 
where length(A.PDPADDR)=8 and instr(A.PDPADDR,'.')=0

再加上本身10进制的格式内容就OK了。

union
...
where length(A.PDPADDR)<>8 or instr(A.PDPADDR,'.')<>0
...

猜你喜欢

转载自blog.csdn.net/ddrfan/article/details/85258759