Oracle SQL:有什么方法可以列出 IP 版本为 IPv6 的所有条目?
Oracle SQL: Is there any way to list all entries where IP version is IPv6?
在table中,我们有多行记录登录的IP地址。这些天我们也从 IPv6 地址获得登录。
我正在尝试找到一种方法来列出我们有 IPv6 条目的所有行。
非常感谢任何建议。
谢谢。
据推测,你可以这样做:
select t.*
from t
where not regexp_like(ip, '[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}')
或者更简单地说:
select t.*
from t
where ip like '%:%' -- ipv6 contains colons
由于 IPv6 地址的大小为 128 位,每个冒号后有 4 位数字,我们可以这样:
create table ns_tab3 (val varchar(100));
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:2002');
insert into ns_tab3 values('2002:2432:2432:2543:2974:2002:2002:2002');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:2432');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:1920');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:0201');
select * from ns_tab3;
select * from ns_tab3 where regexp_like(val,'[0-9]{4}:[0-9]{4}:[0-9]{4}:[0-9]{4}:[0-
9]{4}:[0-9]{4}:[0-9]{4}:[0-9]{4}');
在table中,我们有多行记录登录的IP地址。这些天我们也从 IPv6 地址获得登录。
我正在尝试找到一种方法来列出我们有 IPv6 条目的所有行。
非常感谢任何建议。
谢谢。
据推测,你可以这样做:
select t.*
from t
where not regexp_like(ip, '[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}')
或者更简单地说:
select t.*
from t
where ip like '%:%' -- ipv6 contains colons
由于 IPv6 地址的大小为 128 位,每个冒号后有 4 位数字,我们可以这样:
create table ns_tab3 (val varchar(100));
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:2002');
insert into ns_tab3 values('2002:2432:2432:2543:2974:2002:2002:2002');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:2432');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:1920');
insert into ns_tab3 values('2002:2002:2002:2002:2002:2002:2002:0201');
select * from ns_tab3;
select * from ns_tab3 where regexp_like(val,'[0-9]{4}:[0-9]{4}:[0-9]{4}:[0-9]{4}:[0-
9]{4}:[0-9]{4}:[0-9]{4}:[0-9]{4}');