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 表明(字段名);--好处是查这个临时表速度比较快
仅供学习参考!