1、Oracle數據庫創建臨時表的方法
第一種:最原始的方法
CREATE TABLE TABLE_NAME
(
列名,類型
)
CREATE TABLE TEMP1
(
ID_1 NUMBER, --數字型
NAME NVARCHAR2(10), --字符,最大值10
ADDR_1 NVARCHAR2(50) --字符,最大值50
)
--這種方式非常古老了,適合在Oracle庫中臨時測試,或者取數的時候用。
第二種:非常快捷的方法
如果已經存在表,在這個表基礎上取幾個字段,建立臨時表
CREATE TABLE TEMP2 NOLOGGING AS
SELECT A.* FROM TEMP1 WHERE 1=2;
這種創建表用了1=2的條件,非常方便,只是克隆了TEMP1的表模型結構,並沒有復制表數據,非常方便。
如果要全部提取TEMP1的表數據,不要加這個條件即可。
2、清空臨時表數據
TRUNCATE TABLE TEMP1; --只清空數據,表模型結構還在,用select * from TEMP1 可以查到表;
3、釋放臨時表
DROP TABLE TEMP1 PURGE; --釋放臨時表,清除內存,這種的好處是清除數據空空間,壞處是表就沒有了,恢復不了,大牛可以用閃回。
樓主以前釋放過一個臨時表,別人建立的,30萬數據,恢復30萬數據花了半個晚上,都是血和淚的歷史。。。。。。。。。。
4、刪除臨時表
DELETE FROM TEMP1; --最常見的刪除表,表面上也是沒有表了,看不到了,實際后台內存並沒有被釋放,會占用數據庫內存,慎用。
5、給臨時表字段建立索引
CREATE INDEX IDX_TEMP1_01 ON TEMP1(ID_1);
CREATE 索引名字 ON 表明(字段名);--好處是查這個臨時表速度比較快
僅供學習參考!