This is a known restriction. See MOS note 744219.1 for details.
Workaround 1:
- do it the "other way", ie the remote database does
insert into my_local_table
select ... from table@remote
Workaround 2:
- use PLSQL. Bulk collect the rows into an array, and the insert them
SQL> declare
2 type ty is table of varchar2(100);
3 r ty;
4 begin
5
6 SELECT u.partition_name bulk collect into r FROM user_tab_partitions u;
7
8 for i in 1 .. r.count loop
9 INSERT INTO test t values ( r(i));
10 end loop;
11
12 end;
13 /
PL/SQL procedure successfully completed.