索引都會包含rowid來定位到具體的位置,但是唯一索引不會用rowid來作為“索引鍵”的一部分 比如在列col1上建立非唯一索引,則其索引鍵是col1| rowid,這樣索引鍵就唯一了,但唯一索引不會在列上加上rowid構成索引鍵 測試:SQL> conn / as sysdba已串連。SQL> create table t as select * from dba_objects;表已建立。SQL> create
先瞧一個大家習以為常的現象:hr@ORCL> drop table t purge;Table dropped.hr@ORCL> create table t (x number,y varchar2(30));Table created.hr@ORCL> insert into t select rownum,rownum||'a' from dual connect by rownum<1000000;999999 rows
規則如下: 測試如下:hr@ORCL> drop table t purge;Table dropped. hr@ORCL> create table t as select * from dba_objects;Table created.hr@ORCL> alter table t add (object_id_1 number);Table altered.hr@ORCL> update t set
表是段,但段不一定是表,段還有index段、undo段、分區之類的 具體如下: 首先,要清楚它們的概念:表是邏輯對象;段是實體儲存體對象 然後,再看它們之間的關係: ① 段的存在,並不是依賴於表的。建立一些其它邏輯對象也會會建立段,如索引、物化視圖 ② 一張普通表(堆組織表)對應一個段 ③ 表的建立,並不意味著段的建立,如暫存資料表(Global Temporary Table) ④
從Oracle9i開始,就可以使用DBMS_FGA可以對指定的表的select語句進行審計 但是在9i中只能對select語句進行審計,在10g中可以實現對DML的審計功能 下面用DBMS_FGA來展示select語句的審計功能 ① 假定我們存在表t,包含記錄為sys@ORCL> select * from hr.t; ID NAME---------- -------------------- 1
undo機制是oracle的巧妙之處,也是學習oracle的痛點之一。 下面我們從內部來具體瞭解它。 會話1:scott使用者,發起一個事務hr@ORCL> conn scott/oracleConnected.scott@ORCL> UPDATE emp SET sal=4000 WHERE empno=7788;1 row updated.scott@ORCL> SELECT empno,ename,job,mgr,sal FROM emp WHERE