摘要:[ORACLE] Create Temporary table 比較!
temporary tables 可用來儲存在 session 或 transaction 期間 session 私有資料
在 Oracle Database 中, 可以建立暫存, 臨時性, 且快速存取的 Table : Temporary Table
Create Global Temporary Table <Table_Name> (
<Col_Name1> <Data_Type1>
, <Col_Name2> <Data_Type2>
, ...
) on Commit [Delete / Preserve] Rows;
--預設值為 on Commit Delete Rows, transaction 結束資料立即消失
--預設值為 on Commit Preserve Rows, session 結束資料立即消失
比較 on Commit Delete Rows 與 on Commit Preserver Rows
Delete :
1) Commit 後, 資料被刪除.
2) 不管有無 Commit, 都可以直接 Drop Table.
Preserve :
1) Commit 後, 資料仍保留著.
2) 不管有無 Commit, 若要 Drop Table 前, 一定要先 Truncate Table 才可以.
Temporary Table 優缺點
優點 : 1) 存放在記憶體中, 而非 Data File, 所以 "存取較快". 2) SESSION 獨立, 也就是 "不同的 DB Session, 看不到另一個 DB Session 的資料". 3) Commit 後, 可以決定資料是否保留. 缺點 : 1) 不能使用 "%type", "%rowtype". 2) 在程式開發階段, 不易查找 Temporary Table 資料.
原文參考來源: http://tomkuo139.blogspot.tw/2009/12/oracle-db-temporary-table.html
Y2J's Life:http://kimenyeh.blogspot.tw/