ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Read-Only Tables in Oracle Database 11g Release 1

Read-Only Tables in Oracle Database 11g Release 1

原创 Linux操作系统 作者:paulyibinyi 时间:2008-07-24 14:45:51 0 删除 编辑

在11g版本中,对表的操作可以进行read only 操作 来保护表的数据和表定义

对表执行DML和DDl都是不允许的 对表进行只读和恢复读写用以下两个语句:

ALTER TABLE table_name READ ONLY;
ALTER TABLE table_name READ WRITE;

以下是测试过程:

DML验证   会抛出ORA-12081错误

[oracle@asm11g ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Tue Jul 22 19:41:18 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> conn paul/paul                                                            
Connected.
SQL> create table ro_tab(id number);                                           

Table created.

SQL> insert into ro_tab values(1);                                             

1 row created.

SQL> alter table ro_tab read only;                                             

Table altered.

SQL> insert into ro_tab values(2);                                             
insert into ro_tab values(2)
            *
ERROR at line 1:
ORA-12081: update operation not allowed on table "PAUL"."RO_TAB"


SQL> update ro_tab set id=2;                                                   
update ro_tab set id=2
       *
ERROR at line 1:
ORA-12081: update operation not allowed on table "PAUL"."RO_TAB"


SQL> delete from ro_tab;                                                       
delete from ro_tab
            *
ERROR at line 1:
ORA-12081: update operation not allowed on table "PAUL"."RO_TAB"


SQL>

DDL验证

SQL> truncate table ro_tab;                                                                                                                  
truncate table ro_tab
               *
ERROR at line 1:
ORA-12081: update operation not allowed on table "PAUL"."RO_TAB"


SQL> ALTER TABLE ro_tab ADD (description VARCHAR2(50));                                                                                      
ALTER TABLE ro_tab ADD (description VARCHAR2(50))
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "PAUL"."RO_TAB"

Operations on indexes associated with the table are unaffected by the read-only state.

索引在表只读期间是可以创建的

SQL> create index idx_test on ro_tab(id);                                                                                                    

Index created.

DML and DDL operations return to normal once the table is switched back to read-write mode.

SQL> ALTER TABLE ro_tab READ WRITE;

Table altered.

SQL> DELETE FROM ro_tab;

1 row deleted.

SQL>


 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7199859/viewspace-409921/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
学习数据库

注册时间:2007-12-11

  • 博文量
    907
  • 访问量
    6894384