程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle中的臨時表

oracle中的臨時表

編輯:Oracle教程

oracle中的臨時表


臨時表:

除了永久表,oracle還可以建立臨時表來保存 session私有的data,這些data只存在於一個事務或者session的持續存在的期間內。

CREATE GLOBAL TEMPORARY TABLE 語句建立了一個臨時表,該臨時表可以是事務級別,也可以是session級別。 對於事務級別的臨時表,data存在於事務的持續期間。對於session級別的臨時,data存在於session的持續期間。臨時表中的data 對各自的session的是私有的。每個session 只能看到並且只能修改它自己的data。dml lock 對於 臨時表上的data是不需要的。lock 語句對臨時表沒有作用,因為每個session都有他自己的私有data。

對於在 session級別的臨時表發出truncate命令,會truncate掉屬於那個session的data。truncate命令不會truncate掉 使用相同表名的其他的session的數據。

臨時表上的dml語句不會生成redo。但是,undo logs for the data and redo logs for the undo logs 是生成的。在session終止(user logs off 或者 session 異常終止)時,臨時表中的數據會自動drop掉。

可以在臨時表上使用create index語句建立索引。建立在臨時表上的索引也是臨時的,索引中的data 與 臨時表中的data 有相同的 session 或者 事務范圍。

可以建立訪問臨時表和永久表的view。也可以在臨時表上建立觸發器。

oracle 實用工具(注:exp等)可以導出和導入 臨時表的定義,但是,即使你使用rows子句,臨時表中的data rows也是不會被導出的。類似的,你可以復制臨時表的定義,但是不能復制表中的data。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved