簡體   English   中英

在 Oracle 12c/PL SQL 中查找給定 IP 地址和前綴長度的子網地址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM