In 11g - yes, you can with reference partitioning:
ops$tkyte%ORA11GR1> create table p
2 (
3 order# number primary key,
4 order_date date,
5 data varchar2(30)
6 )
7 enable row movement
8 PARTITION BY RANGE (order_date)
9 (
10 PARTITION part_2007 VALUES LESS THAN (to_date('01-jan-2008','dd-mon-yyyy')) ,
11 PARTITION part_2008 VALUES LESS THAN (to_date('01-jan-2009','dd-mon-yyyy'))
12 )
13 /
Table created.
ops$tkyte%ORA11GR1> create table c1
2 ( order# number not null, -- the NOT NULL is necessary, even though part of the
3 line# number, -- key
4 data varchar2(30),
5 constraint c1_pk primary key(order#,line#),
6 constraint c1_fk_p foreign key(order#) references p
7 )
8 enable row movement
9 partition by reference(c1_fk_p)
10 /
Table created.
ops$tkyte%ORA11GR1> insert into p (order#, order_date, data)
2 values ( 1, to_date('31-dec-2007'), 'order data' );
1 row created.
ops$tkyte%ORA11GR1>
ops$tkyte%ORA11GR1> insert into c1 (order#, line#, data)
2 values ( 1, 1, 'line data 1' );
1 row created.
ops$tkyte%ORA11GR1> insert into c1 (order#, line#, data)
2 values ( 1, 2, 'line data 2' );
1 row created.
ops$tkyte%ORA11GR1>
ops$tkyte%ORA11GR1> insert into p (order#, order_date, data)
2 values ( 2, to_date('31-dec-2008'), 'order data' );
1 row created.
ops$tkyte%ORA11GR1>
ops$tkyte%ORA11GR1> insert into c1 (order#, line#, data)
2 values ( 2, 1, 'line data 1' );
1 row created.
ops$tkyte%ORA11GR1> insert into c1 (order#, line#, data)
2 values ( 2, 2, 'line data 2' );
1 row created.
ops$tkyte%ORA11GR1>
ops$tkyte%ORA11GR1> alter table p truncate partition part_2007;
alter table p truncate partition part_2007
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
ops$tkyte%ORA11GR1> alter table c1 truncate partition part_2007;
Table truncated.
ops$tkyte%ORA11GR1> alter table p truncate partition part_2007;
Table truncated.
In 11g, we understand there is a relationship between the parent partition and the child partition
In 10g and before, there is no way to "express" that - we don't know that fact, if you did the above in 10g you would have to denormalize ORDER_DATE into the Child table - but we don't know that order date in the child is the same as order date in the parent.
In 10g, you'd have to disable the constraint, truncate, and then re-enable it.