1.概念特性

临时表用来保存一个会话SESSION或一个事务中需要的数据。当会话退出或事务结束时,临时表的数据自动清空,但是表结构及元数据

依旧会存储在用户的数据字典中。

临时表不是存放于用户表空间,而是存入于指定的临时表空间中,没有指定临时表(包括其索引)存入的表空间的时间,临时表的数据则

存放于系统的临时表空间中(TEMP)。

临时表上可以创建索引,视图和触发器,可以用EXPORT 和 IMPORT 工具导入和导出表的定义,但是不能导出数据,表的定义对所有的会话可见。

建立在临时表的索引也是临时的,也只对当前会话或事务有效。

对临时表的DML操作速度相对较快,但是也要产生Redo log,只是同样的DML,比对PERMANENT的DML产生的Redo log相对要少。

2.临时表的缺陷:

1.不支持LOB对象。

2.不支持主外键关系

3.应用场景

1.比如购物网站,在整个SESSION中保存购物车信息。采用(ON COMMIT PRESERVE ROWS)的方法解决。

2.存储中间数据。比如数据分析应用。

4.会话临时表(session级别):

SQL> create global temporary table test(id number) on commit preserve rows;

Table created

SQL> select * from test;

ID

----------

SQL> insert into test(1);

insert into test(1)

ORA-00928: 缺失 SELECT 关键字

SQL> insert into test values(1);

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test;

ID

----------

1

SQL> insert into test values(2);

1 row inserted

SQL> select * from test;

ID

----------

1

2

SQL> rollback ;

Rollback complete

SQL> select * from test;

ID

----------

1

5.事务临时表

SQL> drop table test;

Table dropped

如删除不掉,请重新登录,再删除。

SQL> create global temporary table test(id number) on commit delete rows;

Table created

SQL> insert into test values(1);

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test;

ID

----------

阅读(458) | 评论(0) | 转发(0) |

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐