TEMPORARY TABLE自動刪除資料的時機
TEMPORARY TABLE會依據不同的使用者,分配各自獨立的Temp Segment,
如此一來,就可以讓不同的使用者,獨自操作Temporary Table,而不會互相干擾。
而在創建Temporary Table有一個指定參數,可以決定什麼時候要刪除資料。
1、ON COMMIT DELETE ROWS(只要commit就將資料除)
CREATE GLOBAL TEMPORARY TABLE CUSADMIN.TMP_GGG
(
A VARCHAR2(100 BYTE),
B VARCHAR2(100 BYTE)
)
ON COMMIT DELETE ROWS
NOCACHE;
測試:
SQL> insert into cusadmin.tmp_ggg values('aa','bb');
1 row created.
SQL> select * from cusadmin.tmp_ggg;
A B
------- -----------
aa bb
SQL> commit;
Commit complete.
SQL> select * from cusadmin.tmp_ggg;
no rows selected
2、ON COMMIT PRESERVE ROWS(在同一Sessin期間,資料是保存的)
CREATE GLOBAL TEMPORARY TABLE CUSADMIN.TMP_GGG
(
A VARCHAR2(100 BYTE),
B VARCHAR2(100 BYTE)
)
ON COMMIT PRESERVE ROWS
NOCACHE;
測試:
SQL> insert into cusadmin.tmp_ggg values('aa','bb');
1 row created.
SQL> select * from cusadmin.tmp_ggg;
A B
------ --------
aa bb
SQL> commit;
Commit complete.
SQL> select * from cusadmin.tmp_ggg;
A B
------ --------
aa bb
SQL> disconnect;
SQL> connect cusadmin/XXXXX@test
Connected.
SQL> select * from cusadmin.tmp_ggg;
no rows selected
在建立Temporary Table時,其預設參數為ON COMMIT DELETE ROWS,
但是有時候在撰寫程式時,都會有數個commit,再取出資料的動作,
此時最好是使用ON COMMIT PRESERVE ROWS。
-
Windows7 / Windows8 kill process Linux下要刪除某個程序通常會使用 ps 配合 kill 來刪除程序。 例如:ps -ef |grep [PROCESS NAME] kill -9 [PID] 在Windows下,通常是...
-
利用Win 10的工作排程器來設定每日自動執行的批次檔,單獨執行批次檔沒問題,但是放在排程上就是無法執行。 後來試了幾種網路上提供的方式,其注意的事項如下: 1、在「安全性選項」選擇「只有使用者登入時才執行」並取消「以最高權限執行」。 2、在「設定」中選擇「Win...
-
因為寫程式時剛好用到sin、cos等數學函數,但是傳入值都是徑度(單位圓上角度所對的弧長為該角度的徑度), 而不是角度,所以找到了換算的方法,順道也記錄下來。 已知 pi=3.1415 已知 圓周長=半徑*2*pi 已知 一個圓有360度 所以 1徑度=半徑...