在 Oracle Database 中,可以建立暫存、臨時性、且快速存取的 Table : Temporary Table。
A. 語法如下:
Create Global Temporary Table <Table_Name> (
<Col_Name1> <Data_Type1>,
<Col_Name2> <Data_Type2>,
...
) on Commit [Delete / Preserve] Rows;
-- 其中,預設值為 on Commit Delete Rows.
B. 比較 on Commit Delete Rows 與 on Commit Preserver Rows:
Delete:
1) Commit 後,資料被刪除。
2) 不管有無 Commit,都可以直接 Drop Table。
Preserve:
1) Commit 後,資料仍保留著。
2) 不管有無 Commit,若要 Drop Table 前,一定要先 Truncate Table 才可以。
C. 檢查有哪些 Temp Table?
select table_name
from all_tables
where temporary = 'Y';
D. Temporary Table 優缺點:
優點:
1) 存放在記憶體中,而非 Data File,所以 "存取較快"。
2) SESSION 獨立,也就是 "不同的 DB Session, 看不到另一個 DB Session 的資料"。
3) Commit 後,可以決定資料是否保留。
缺點:
1) 不能使用 "%type","%rowtype"。
2) 在程式開發階段,不易查找 Temporary Table 資料。
沒有留言:
張貼留言