日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 11g 新特性:只读表(Read-only)

發(fā)布時間:2024/3/24 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 11g 新特性:只读表(Read-only) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Oracle 11g 新特性:只讀表(Read-only)

?

Oracle11g推出了一個新的特性,可以將table置于read only狀態(tài),處于該狀態(tài)的table的不能執(zhí)行DML操作和某些DDL操作。在Oracle11g之前的版本,只能將整個tablespace或者database置于read only狀態(tài)。對于table的控制則只能通過權限來設定。

CREATE TABLE products(prod_id varchar2(6) NOT null,quantity number,price number,expiry_date date);ALTER TABLE products READ only; TRUNCATE TABLE products; ALTER TABLE products SET unused(expiry_date); ALTER TABLE products DROP unused columns; CREATE INDEX idxxx ON products(price); ALTER TABLE products DROP COLUMN expiry_date; DROP TABLE products; HR@lhr121> CREATE TABLE products(prod_id varchar2(6) NOT null,quantity number,price number,expiry_date date);Table created.HR@lhr121> HR@lhr121> ALTER TABLE products READ only;Table altered.HR@lhr121> TRUNCATE TABLE products; TRUNCATE TABLE products* ERROR at line 1: ORA-12081: update operation not allowed on table "HR"."PRODUCTS"HR@lhr121> ALTER TABLE products SET unused(expiry_date); ALTER TABLE products SET unused(expiry_date) * ERROR at line 1: ORA-12081: update operation not allowed on table "HR"."PRODUCTS"HR@lhr121> ALTER TABLE products DROP unused columns;Table altered.HR@lhr121> CREATE INDEX idxxx ON products(price);Index created.HR@lhr121> ALTER TABLE products DROP COLUMN expiry_date; ALTER TABLE products DROP COLUMN expiry_date * ERROR at line 1: ORA-12081: update operation not allowed on table "HR"."PRODUCTS"HR@lhr121> DROP TABLE products;Table dropped.

案例分析:

?

11:44:46 SCOTT@ test1 >select * from tab;

TNAME? ? ? ? ? ? ? ? ? ? ? ? ? TABTYPE? CLUSTERID

------------------------------ ------- ----------

BONUS? ? ? ? ? ? ? ? ? ? ? ? ? TABLE

CREDIT_CLUSTER? ? ? ? ? ? ? ? ?CLUSTER

CREDIT_ORDERS? ? ? ? ? ? ? ? ? TABLE? ? ? ? ? ? 1

DEPT? ? ? ? ? ? ? ? ? ? ? ? ? ?TABLE

EMP? ? ? ? ? ? ? ? ? ? ? ? ? ? TABLE

EMP1? ? ? ? ? ? ? ? ? ? ? ? ? ?TABLE

?

11:44:56 SCOTT@ test1 >select count(*) from emp1;

? COUNT(*)

----------

? ? ? ? 18

Elapsed: 00:00:00.04

11:45:12 SCOTT@ test1 >alter table emp1 read only;

Table altered.

?

11:51:46 SCOTT@ test1 >select read_only from user_tables where table_name='EMP1';

REA

---

YES

?

對只讀表做DML:

11:45:20 SCOTT@ test1 >insert into emp1 select * from emp where rownum=1;

insert into emp1 select * from emp where rownum=1

? ? ? ? ? ? *

ERROR at line 1:

?

ORA-12081: update operation not allowed on table "SCOTT"."EMP1"

Elapsed: 00:00:00.04

11:45:38 SCOTT@ test1 >delete from emp1;

delete from emp1

? ? ? ? ? ? *

ERROR at line 1:

ORA-12081: update operation not allowed on table "SCOTT"."EMP1"

Elapsed: 00:00:00.00

11:45:47 SCOTT@ test1 >update emp1 set sal=6000 where empno=7788;

update emp1 set sal=6000 where empno=7788

? ? ? ?*

ERROR at line 1:

ORA-12081: update operation not allowed on table "SCOTT"."EMP1"

?

TRUNCATE TABLE:

11:46:03 SCOTT@ test1 >truncate table emp1;

truncate table emp1

? ? ? ? ? ? ? ?*

ERROR at line 1:

ORA-12081: update operation not allowed on table "SCOTT"."EMP1"

Elapsed: 00:00:00.09

?

DROP TABLE:

11:46:45 SCOTT@ test1 >drop table emp1;

Table dropped.

Elapsed: 00:00:00.70

11:47:05 SCOTT@ test1 >show recycle;

ORIGINAL NAME? ? RECYCLEBIN NAME? ? ? ? ? ? ? ? OBJECT TYPE? DROP TIME

---------------- ------------------------------ ------------ -------------------

EMP1? ? ? ? ? ? ?BIN$ComP5WftmQ7gUKjA+QgIyQ==$0 TABLE? ? ? ? 2014-12-19:11:47:04

11:47:52 SCOTT@ test1 >flashback table emp1 to before drop;

Flashback complete.

11:49:56 SCOTT@ test1 >select count(*) from emp1;

? COUNT(*)

----------

? ? ? ? 18

? ? ? ??

MOVE TABLE:? ? ? ??

11:50:06 SCOTT@ test1 >alter table emp1 move;

Table altered.

Elapsed: 00:00:00.54

?

壓縮表:

11:51:27 SCOTT@ test1 >alter table emp1 compress;

Table altered.

Elapsed: 00:00:00.09

11:51:39 SCOTT@ test1 >alter table emp1 nocompress;

Table altered.

Elapsed: 00:00:00.16

?

約束管理:

11:52:53 SCOTT@ test1 >alter table emp1 add constraint fk_emp1 foreign key(deptno) references dept(deptno);

Table altered.

?

11:54:29 SCOTT@ test1 >alter table emp1 drop constraint fk_emp1;

Table altered.

?

11:54:47 SCOTT@ test1 >create index emp1_empno_ind on emp1(empno) tablespace indx;

Index created.

?

索引管理:

11:55:17 SCOTT@ test1 >drop index emp1_empno_ind;

Index dropped.

?

配置read write:

11:55:27 SCOTT@ test1 >alter table emp1 read write;

Table altered.

?

11:55:37 SCOTT@ test1 >select read_only from user_tables where table_name='EMP1';

REA

---

NO

?

在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;

?

任何影響表數(shù)據(jù)的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"

影響表數(shù)據(jù)的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>

?

更多詳細請查閱官方文檔:

http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm

http://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_2105.htm

?

?

?



About Me

........................................................................................................................

● 本文作者:小麥苗,部分內(nèi)容整理自網(wǎng)絡,若有侵權請聯(lián)系小麥苗刪除

● 本文在itpub、博客園、CSDN和個人微 信公眾號(?xiaomaimiaolhr)上有同步更新

● 本文itpub地址:?http://blog.itpub.net/26736162

● 本文博客園地址:?http://www.cnblogs.com/lhrbest

● 本文CSDN地址:?https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗云盤地址:?http://blog.itpub.net/26736162/viewspace-1624453/

● 數(shù)據(jù)庫筆試面試題庫及解答:?http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:?http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號:?230161599?、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯(lián)系我請加QQ好友?(?646634621?),注明添加緣由

● 于 2019-09-01 06:00 ~ 2019-09-31 24:00 在西安完成

● 最新修改時間:2019-09-01 06:00 ~ 2019-09-31 24:00

● 文章內(nèi)容來源于小麥苗的學習筆記,部分整理自網(wǎng)絡,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

●?小麥苗的微店:?https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

●?小麥苗出版的數(shù)據(jù)庫類叢書:?http://blog.itpub.net/26736162/viewspace-2142121/

●?小麥苗OCP、OCM、高可用網(wǎng)絡班:?http://blog.itpub.net/26736162/viewspace-2148098/

●?小麥苗騰訊課堂主頁:?https://lhr.ke.qq.com/

........................................................................................................................

使用?微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號(?xiaomaimiaolhr)及QQ群(DBA寶典)、添加小麥苗微 信,?學習最實用的數(shù)據(jù)庫技術。

?

........................................................................................................................

??

?

總結

以上是生活随笔為你收集整理的Oracle 11g 新特性:只读表(Read-only)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。