SELECT table_name, column_name, updatable 2 FROM user_updatable_columns 3 WHERE table_name LIKE 'UPDATEVIEW%'; TABLE_NAME COLUMN_NAME UPD------------------------- ------------------------- ---UPDATEVIEWNO ADDFIELD NOUPDATEVIEWYES FIELD1 YESUPDATEVIEWYES FIELD2 YESWITH READ ONLYWhat if you don't want anyone to update obase tables using your View?You can explicitly prevent users from modifying the base table through your View by creating it with the WITH READ ONLY clause.materialized views without query rewrite are supported in Standard editions.this means rewriting your queries to take advantage of the mat view but it also provides extra performance at reduced cost.When you're executing DML operations on a View, Oracle actually executes those DML operations appropriately on the base tables.And there are some cases where it is impossible for Oracle to do that.Well you can simply try and see, but there is another way.
How would Oracle know how to divide the new value we assigned?
Same goes if you have a collection expression or a subquery in a SELECT list.
USER_UPDATABALE_COLUMNSNot sure if your View can be updated or not?
This argument would hold for any situation where the View had a pseudocolumn or expression column, like this example, or perhaps one created through the use of DECODE. The Oracle SQL Reference details other situations where your View couldn't be updated.
For example, and along the same lines of reasoning, if the View contains a SET, DISTINCT, GROUP BY, GROUP, ORDER BY, CONNECT BY, START WITH, then Oracle can't perform any update or insert operations on the View.
Once committed, the only way you can revert a change is to issue a new DML statement to alter the data.