Sample data:
(rn,net_id,parent_net_id,net_addr,NETWORK,IP_ADDRESS,PARENT_NODE,LVL,TREE) AS
SELECT 1 AS rn,2 AS net_id,NULL AS parent_net_id,3232235520 AS net_addr,'192.168.0.0/24' AS NETWORK,'192.168.0.0' AS IP_ADDRESS,'192.168.0.0/24' AS PARENT_NODE,1 AS LVL,'/192.168.0.0' AS TREE FROM dual
UNION ALL
SELECT 2,6,2,3232235776,'192.168.1.0/24','192.168.1.0','192.168.0.0/24',2,'/192.168.0.0/192.168.1.0' FROM dual
UNION ALL
SELECT 3,7,2,3232236032,'192.168.2.0/24','192.168.2.0','192.168.0.0/24',2,'/192.168.0.0/192.168.2.0' FROM dual
UNION ALL
SELECT 4,11,6,3232236288,'192.168.1.128/25','192.168.1.128','192.168.1.0/24',3,'/192.168.0.0/192.168.1.0/192.168.1.128' FROM dual
UNION ALL
SELECT 5,12,6,3232236544,'192.168.1.192/26','192.168.1.192','192.168.1.0/24',3,'/192.168.0.0/192.168.1.0/192.168.1.192' FROM dual
UNION ALL
SELECT 6,8,7,3232236288,'192.168.2.128/25','192.168.2.128','192.168.2.0/24',3,'/192.168.0.0/192.168.2.0/192.168.2.128' FROM dual
UNION ALL
SELECT 7,9,7,3232236544,'192.168.2.192/26','192.168.2.192','192.168.2.0/24',3,'/192.168.0.0/192.168.2.0/192.168.2.192' FROM dual
UNION ALL
SELECT 8,13,11,3232236304,'192.168.1.0/26','192.168.1.0','192.168.1.0/24/192.168.1.128',4,'/192.168.0.0/192.168.1.0/192.168.1.128/192.168.1.0' FROM dual;
Query:-
select * from (SELECT ROWNUM
AS rn,
net_id,
parent_net_id,
addr,
PMU.int2quad (ADDR) || '/' || NET_PREFIX_LENGTH
AS "NETWORK",
SUBSTR (PMU.int2quad (ADDR), 1, 15)
"IP_ADDRESS",
CONNECT_BY_ROOT PMU.int2quad (ADDR)
|| '/'
|| NET_PREFIX_LENGTH
AS "PARENT_NODE",
LEVEL
LVL,
SYS_CONNECT_BY_PATH (PMU.int2quad (ADDR), '/')
"TREE"
FROM HIERARCHY_TAB
START WITH net_id > 1 AND parent_net_id IS NULL
CONNECT BY NOCYCLE PRIOR net_id = PARENT_NET_ID
ORDER SIBLINGS BY addr) where network='192.168.1.0/24'
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| rn | net_id | parent_net_id | addr | NETWORK | IP_ADDRESS | PARENT_NODE | LVL | TREE |
+====+========+===============+============+==================+===============+==============================+=====+====================================================+
| 1 | 2 | NULL | 3232235520 | 192.168.0.0/24 | 192.168.0.0 | 192.168.0.0/24 | 1 | /192.168.0.0 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 2 | 6 | 2 | 3232235776 | 192.168.1.0/24 | 192.168.1.0 | 192.168.0.0/24 | 2 | /192.168.0.0/192.168.1.0 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 3 | 7 | 2 | 3232236032 | 192.168.2.0/24 | 192.168.2.0 | 192.168.0.0/24 | 2 | /192.168.0.0/192.168.2.0 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 4 | 11 | 6 | 3232236288 | 192.168.1.128/25 | 192.168.1.128 | 192.168.1.0/24 | 3 | /192.168.0.0/192.168.1.0/192.168.1.128 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 5 | 12 | 6 | 3232236544 | 192.168.1.192/26 | 192.168.1.192 | 192.168.1.0/24 | 3 | /192.168.0.0/192.168.1.0/192.168.1.192 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 6 | 8 | 7 | 3232236288 | 192.168.2.128/25 | 192.168.2.128 | 192.168.2.0/24 | 3 | /192.168.0.0/192.168.2.0/192.168.2.128 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 7 | 9 | 7 | 3232236544 | 192.168.2.192/26 | 192.168.2.192 | 192.168.2.0/24 | 3 | /192.168.0.0/192.168.2.0/192.168.2.192 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
| 8 | 13 | 11 | 3232236304 | 192.168.1.0/26 | 192.168.1.0 | 192.168.1.0/24/192.168.1.128 | 4 | /192.168.0.0/192.168.1.0/192.168.1.128/192.168.1.0 |
+----+--------+---------------+------------+------------------+---------------+------------------------------+-----+----------------------------------------------------+
Question:
1. for a given network I need to get network record and previous row.
2. for a given network I need to get network level and all previous levels of records till its parent_node;
Thanks!