You should be ok, and it's trivial to validate. For example, see what happens when I repeat the demo and deliberately match on *different* partition position
SQL> create table t1
2 ( x int, y int )
3 partition by hash(x) partitions 8;
Table created.
SQL>
SQL> create table t2
2 ( a int, b int )
3 partition by hash(a) partitions 8;
Table created.
SQL>
SQL> insert into t1
2 select object_id, rownum
3 from all_objects;
95352 rows created.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> begin
2 for i in (
3 select t1.partition_name t1_name, t2.partition_name t2_name
4 from user_tab_partitions t1,
5 user_tab_partitions t2
6 where t1.table_name = 'T1'
7 and t2.table_name = 'T2'
8 and t1.partition_position = t2.partition_position+1 <<=====
9 )
10 loop
11 execute immediate 'insert into t2 partition ( '||i.t2_name||') select * from t1 partition ('||i.t1_name||')';
12 end loop;
13 end;
14 /
begin
*
ERROR at line 1:
ORA-14401: inserted partition key is outside specified partition
ORA-06512: at line 11