[英]Find Subnet Address given IP Address and Prefix Length in Oracle 12c/ PL SQL
給定 IP 地址(例如:12.12.12.12/24)返回前綴 IP 地址(例如:12.12.12.0)。 我們如何在 SQL 中進行這些轉換?
我試圖通過將 IP 地址轉換為二進制然后對它們進行 AND 運算來將一種方法串在一起。 總的來說,有大量示例,但沒有任何適用於 PL/SQL 的示例。 任何幫助表示贊賞。
這是使用 REGEXP_REPLACE() 的一種方法。 正則表達式描述字符串,括號中是“記住”部分。 記住的部分是直到並包括字符串中最后一個句點的所有內容。 我們不想要字符串的其余部分。 調用的替換部分替換為第一個記住的部分(表示為 \\1),后跟 0。
SELECT REGEXP_REPLACE('12.12.12.12/24', '(.*\.).*', '\10') new_ip
from dual;
NEW_IP
----------
12.12.12.0
1 row selected.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.