Oracle11g新特性:只读表(Read-only)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle11g新特性:只读表(Read-only),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1721字,纯文字阅读大概需要3分钟。
内容图文
![Oracle11g新特性:只读表(Read-only)](/upload/InfoBanner/zyjiaocheng/549/8fd2553f1d594fe6ac5e6b598372d321.jpg)
在Oracle 11g前的版本中,若想对表设置为只读,可以通过赋予SELECT对象权限给这些用户,但表的拥有者还是读写的。而Oracle 11g 允
在Oracle 11g前的版本中,若想对表设置为只读,可以通过赋予SELECT对象权限给这些用户,但表的拥有者还是读写的。而Oracle 11g 允许表标记为只读(read-only)通过ALTER TABLE 命令。
可以通过下面命令对表读写权限进行设置:
ALTER TABLE table_name READ ONLY;
ALTER TABLE table_name READ WRITE;
简单示例如下:
CREATE TABLE ro_test (
id number
);
INSERT INTO ro_test VALUES (1);
ALTER TABLE ro_test READ ONLY;
任何影响表数据的DML语句和SELECT...FOR UPDATE查询语句都返回ORA-12081错误信息
SQL> INSERT INTO ro_test VALUES (2);
INSERT INTO ro_test VALUES (2)
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."RO_TEST"
SQL> UPDATE ro_test SET id = 2;
UPDATE ro_test SET id = 2
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."RO_TEST"
SQL> DELETE FROM ro_test;
DELETE FROM ro_test
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."RO_TEST"
影响表数据的DDL语句也受限制
SQL> TRUNCATE TABLE ro_test;
TRUNCATE TABLE ro_test
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."RO_TEST"
SQL> ALTER TABLE ro_test ADD (description VARCHAR2(50));
ALTER TABLE ro_test ADD (description VARCHAR2(50))
*
ERROR at line 1:
ORA-12081: update operation not allowed on table "TEST"."RO_TEST"
表是只读表但在与之相关的索引上操作不受影响。当表切换回读写模式时DML和DDL操作恢复正常。
SQL> ALTER TABLE ro_test READ WRITE;
Table altered.
SQL> DELETE FROM ro_test;
1 row deleted.
SQL>
相关阅读:Oracle 11g 的新特性 —— 只读表
内容总结
以上是互联网集市为您收集整理的Oracle11g新特性:只读表(Read-only)全部内容,希望文章能够帮你解决Oracle11g新特性:只读表(Read-only)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。