As the name suggests and I stated earlier too, the READ-ONLY tables are only query tables. Except the SELECT and DROP commands, DML and DDL commands are ineffective in this mode.
Here, we shall see the impact of DML operations on the table T_READ. Oracle raises exception ORA-12081 to restrict the DML operations on the table.
Likewise INSERT statement; same exception would be raised for UPDATE and DELETE operations on the table T_READ. Similar to DML operations, few DDL operations like TRUNCATE and ALTER are also restricted for their user.
Note the exception number and error message is same for all the restricted actions, DML or DDL on the table.
The ALTER command below attempts to add a column COL3 to the T_READ. The ALTER command fails since T_READ is Read-Only table.
But the DDL commands, which are not concerned with the data and structure of the table execute successfully. The ANALYZE, RENAME, and DROP commands execute successfully on READ-ONLY tables.
Indexes can be created on the columns of READ-ONLY tables. These indexes are used by the optimizer in SELECT statements using READ-ONLY tables.
Similarly, partitions can be created, DDL commands like DROP
A table in READ-ONLY mode can be switched back to READ WRITE mode using ALTER TABLE command.
The READ_ONLY status of the T_READ table in USER_TABLES is changed to NO.
Since T_READ is now a normal read/write supported table, data can be easily inserted, modified or deleted.
The mode can be toggled over to READ-ONLY mode to restrict further data changes.
Read-Only tables provide a secure way to ensure data integrity and data access. On a highly secure production system, a table containing confidential data can be declared READ ONLY, so as to make sure that data can only be selected, but not frequently modified.
Oracle 11g Tutorial