Can't you just join on PARTITION_POSITION ?
Because if you
a) drop a parent partition, the child goes as well
b) you cannot drop a child partition in isolation
SQL>
SQL>
SQL> create table par (
2 par_id int constraint par_pk primary key,
3 ins_date date not null)
4 partition by range (ins_date) (
5 partition p1 values less than (to_date('01-mar-2016', 'dd-mon-yyyy')),
6 partition p2 values less than (to_date('01-apr-2016', 'dd-mon-yyyy')),
7 partition p3 values less than (to_date('01-may-2016', 'dd-mon-yyyy')));
Table created.
SQL>
SQL> create table chd (
2 par_id int not null,
3 x int not null,
4 constraint chd_fk foreign key (par_id) references par
5 ) partition by reference (chd_fk);
Table created.
SQL>
SQL> insert into par
2 select rownum, add_months(date'2016-01-01', rownum) from dual
3 connect by level <= 3;
3 rows created.
SQL>
SQL> insert into chd
2 select rownum, rownum from dual
3 connect by level <= 3;
3 rows created.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> select partition_position, partition_name
2 from user_tab_partitions
3 where table_name = 'PAR';
PARTITION_POSITION PARTITION_NAME
------------------ ------------------------------
1 P1
2 P2
3 P3
3 rows selected.
SQL>
SQL> select partition_position, partition_name
2 from user_tab_partitions
3 where table_name = 'CHD';
PARTITION_POSITION PARTITION_NAME
------------------ ------------------------------
1 P1
2 P2
3 P3
3 rows selected.
SQL>
SQL> alter table CHD drop partition p2;
alter table CHD drop partition p2
*
ERROR at line 1:
ORA-14255: table is not partitioned by Range, List, Composite Range or Composite List method
SQL> alter table PAR drop partition p2;
Table altered.
SQL>
SQL> select partition_position, partition_name
2 from user_tab_partitions
3 where table_name = 'PAR';
PARTITION_POSITION PARTITION_NAME
------------------ ------------------------------
1 P1
2 P3
2 rows selected.
SQL>
SQL> select partition_position, partition_name
2 from user_tab_partitions
3 where table_name = 'CHD';
PARTITION_POSITION PARTITION_NAME
------------------ ------------------------------
1 P1
2 P3
2 rows selected.
SQL>
SQL>
SQL>
Cheers,
Connor