I am using oracle 10g and sql developer for writing queries.
I have a user ESTRADM and it has some tables and some Materialized Views . I am trying to insert a row into an table MTEP_THREEDS_CARD_MASTER and its respective Materialized view is MTEP_THREEDS_CARD_MASTER (both table and view has same name).
Now when I execute query
insert into ESTRADM.MTEP_THREEDS_CARD_MASTER values (col1,col2,..); it gives me an error:
Error report:
SQL Error: ORA-01732: data manipulation operation not legal on this view
01732. 00000 - "data manipulation operation not legal on this view"
*Cause:
*Action:
My Materialized view has QUERY REWRITE DISABLED.
I didn't get this why it is trying to insert into the view why it is not writing into the table ? How can i insert a row into the table ?
71 Answer
Only a subset of materialised views can be directly modified, and in order to be so they must adhere to strist rules laid out in the documentation:
If your MV definition meets these restrictions and is still not modifiable then post the definition of the MV and the complete definitions, including constraints, of all of the tables that it references.