WEBINAR:

On-Demand

Making Tables Read-only in Oracle

In Oracle, you can only control read/write capability for an entire tablespace, not for a single table within a tablespace. So, if you want all the tables in a tablespace to be read-only, use the following command:

ALTER TABLESPACE <tablespace_name> READ ONLY;

To reverse the change and set all the tables in the tablespace back to read-write mode, use this code:

ALTER TABLESPACE <tablespace_name> READ WRITE;

Despite that limitation, you can simulate a read-only table by simply preventing all table modifications using a trigger. To do that, create a trigger as follows.

Here's a test command that tries to alter the data, and the resulting output:

SQL> DELETE FROM EMP_SAL_TBL;
DELETE FROM EMP_SAL_TBL
*
ERROR at line 1:
ORA-20001: Table EMP_SAL_TBL is read only, You cannot make changes to the data.
ORA-06512: at "SRIDHAR.EMP_SAL_READ_ONLY", line 2
ORA-04088: error during execution of trigger 'SRIDHAR.EMP_SAL_READ_ONLY'

Advertiser Disclosure:
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.

Thanks for your registration, follow us on our social networks to keep up-to-date