oracle的兩種global temporary table!
1. on commit delete rows
2.on commit preserve rows
[@more@]SQL> create global temporary table gt1 (id int) ;
表已建立。
SQL> insert into gt1 values(1);
已建立 1 行。
SQL> insert into gt1 values(2);
已建立 1 行。
SQL> select * from gt1;
ID
----------
1
2
SQL> commit;
提交完成。
SQL> select * from gt1;
未選定行
SQL> create global temporary table gt2 (id int) on commit delete rows ;
表已建立。
SQL> create global temporary table gt3 (id int) on commit preserve rows ;
表已建立。
SQL> insert into gt3 values(1);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from gt3;
ID
----------
1
SQL> disconnect;
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
SQL> connect/ as sysdba
已連線。
SQL> select * from gt3;
未選定行
SQL> grant connect ,resource to test;
授權成功。
SQL> select * from gt3;
未選定行
SQL> insert into gt3 values(1);
已建立 1 行。
SQL> commit;
提交完成。
SQL> grant select on gt3 to test;
授權成功。
--=========================================
另一個session:
SQL> select * from sys.gt3;
未選定行
--==========================================
SQL> insert into gt1 values(1);
已建立 1 行。
SQL> select count(*) from v$transaction;
COUNT(*)
----------
1
SQL> select count(*) from v$locked_object ;
COUNT(*)
----------
0
SQL> rollback;
回退已完成。
SQL> select count(*) from v$transaction;
COUNT(*)
----------
0
SQL>
我們可以看出在透過dml操作temp table時也會開啟事務,同樣事務也需要commit或者rollback,但該事務卻不對temp table進行lock,原因是不需要lock temp table,因為temp table的資料只能是當前session訪問,類似於單使用者操作temp table。但temp table的結構只要具備訪問priv其他session都可以訪問,我想正因為它的結構可以被其他session訪問,所以oracle的temp table稱為global temp table
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1006802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle臨時表GLOBAL TEMPORARY TABLEOracle
- 全域性臨時表 GLOBAL TEMPORARY TABLE
- oracle temporary tableOracle
- 【TEMPORARY TABLE】Oracle兩種臨時表型別功能特點比較Oracle型別
- Redo內部解析-Global Temporary table insert(九)
- create table進階學習(二)_全域性臨時表_global temporary table
- oracle global temporary table全域性臨時表_測試及v$tempseg_usageOracle
- orace global temporary table全域性臨時表測試小記
- 臨時表(GLOBAL TEMPORARY TABLE)及統計資訊收集,動態取樣
- 【TEMPORARY TABLE】Oracle臨時表使用注意事項Oracle
- 資料庫表--temporary table資料庫
- [20230227][20230109]Oracle Global Temporary Table ORA-01555 and Undo Retention.tOracle
- [Oracle Script] Temporary Sort UsageOracle
- Oracle Temporary Tables(Oracle 臨時表)Oracle
- Oracle supplemental log的兩種型別Oracle型別
- 建立oracle dblink 的兩種方式Oracle
- Oracle兩種備份方式Oracle
- Temporary tablespaces in RAC ? Oracle databas...Oracle
- oracle的臨時表空間temporary tablespaceOracle
- 兩種檢視oracle表結構的方法Oracle
- 【Oracle】global index & local index的區別OracleIndex
- Oracle兩種管理員驗證方法Oracle
- oracle兩種登陸認證方式Oracle
- Oracle identifiers :Global database nameOracleIDEDatabase
- [Oracle] Partition table exchange Heap tableOracle
- Allocation of Temporary Segments for Temporary Tables and Indexes (28)Index
- oracle兩種認證方式總結(ZT)Oracle
- Java連線oracle資料庫的兩種常用方法JavaOracle資料庫
- 淺說兩種輸出Oracle字元檔案的方法Oracle字元
- oracle shrink tableOracle
- Oracle Table LocksOracle
- Alter table for ORACLEOracle
- Oracle Table FunctionOracleFunction
- oracle 檢視和修改global_name 的方法Oracle
- Oracle Partitioned Table:exchange的利用Oracle
- oracle實驗記錄 (oracle的兩種受限制登陸訪問)Oracle
- oracle 資料庫兩種引數檔案Oracle資料庫
- BOM的兩種理解