简单一点写吧
选出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
...