oracle 建立暫存資料表,oracle建立

來源:互聯網
上載者:User

oracle 建立暫存資料表,oracle建立
提交事務後會自動清空,不同的事務之間資料隔離create global temporary table GLS_REPORT_EXPR(  EXPRNO VARCHAR2(30) not null,  EXPR   VARCHAR2(1024))on commit delete rows
oracle中建立暫存資料表與建立普通表的不同

對全域暫存資料表的總結

在暫存資料表上的操作比在一般的表上的操作要快。因為:
1建立暫存資料表不需要往編目表中插入條目,暫存資料表的使用也不需要訪問編目表,因此也沒有對編目表的爭用。
2僅有建立暫存資料表的app才可存取暫存資料表,所以在處理暫存資料表時沒有鎖。
3如果指定NOT LOGGED選項,在處理暫存資料表時不記日誌。所以如果有僅在資料庫的一個會話中使用的大量臨時資料,把這些資料存入暫存資料表能大大提高效能。
DECLARE GLOBAL TEMPORARY TABLE TT(C1 INT, C2 CHAR(20));
在CONNECT RESET命令後,暫存資料表不再存在。
建暫存資料表是動態編譯的,所以對暫存資料表的使用也必須放在DECLARE CURSER 後面
CREATE PROCEDURE INSTT2(P1 INT, P2 CHAR(20))
BEGIN
DECLARE GLOBAL TEMPORARY TABLE TT(C1 INT, C2 CHAR(20)) %
INSERT INTO SESSION.TT VALUES(P1, P2);
BEGIN
DECLARE C1 CURSOR WITH RETURN FOR SELECT * FROM SESSION.TT;
END;
END %

2。事務特有的暫存資料表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT DELETE ROWS;

在Oracle中,全域暫存資料表並不會刪除,實際上你只需要建立一次,以後直接應用就行了,這與MS和Sybase不一樣。實際上在斷開資料庫連接時,暫存資料表中資料自動清空,不同的Session之間是隔離的,不許要當心相互影響,不過如果起用了串連共用的話,你要用On Commit delete rows使資料僅在事物內部有效。
 
oracle怎建立一個暫存資料表

你這個#AA是暫存資料表的表名吧,起表名不能用#這樣的符號吧!

alter GLOBAL TEMPORARY TABLE AAA
ON COMMIT DELETE ROWS
AS
SELECT * FROM AA;
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.