Take a look at this :

SQL> create table itest ( id number, name varchar2(20));
Table created.

SQL> insert into ( select * from itest ) values (1,'My');
1 row created.

SQL> insert into ( select * from itest where 1=2 ) values( 2,'Myself');
1 row created.

SQL> insert into ( select * from itest where rownum < 1 ) values ( 3,'Me Again');
insert into ( select * from itest where rownum < 1 ) values ( 3,'Me Again')
*
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view

SQL> insert into ( select * from itest where id = 9999) values ( 4,'MySelf Again');
1 row created.

Why is the second insert OK and the third not ?

Thanks
Gert