从一组列值中识别有效 IP

Identify valid IP from a set of column values

我有一个列名称 ip_addr,其中包含有效 IP 和无效 IP。我希望仅对 Teradata 中的有效 IP 地址进行子集化。现在我正在使用以下但它似乎不起作用:

EXECUTE
(
create multiset volatile table base as
(
select  distinct int_cust_ip_addr as ip_addr

from cm11_jan14
where int_cust_ip_addr like '%.%.%.%' 
) 
WITH  DATA PRIMARY INDEX(ip_addr) 
ON COMMIT PRESERVE ROWS
)
BY TERADATA;

TD14+支持正则表达式,这个returns1正确的IP4地址:

where REGEXP_SIMILAR (int_cust_ip_addr, '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$') = 1

对于 IP6,只需搜索 "regex ip6"