Oracle临时表

在Oracle中,可以创建以下两种临时表:

  • 会话级临时表

  CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )
  ON COMMIT PRESERVE ROWS

  --ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。 

  • 事务级临时表

  CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column specification> )
  ON COMMIT DELETE ROWS

  --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)  

临时表说明:

  • 临时表的数据是基于一个会话或一个事务的,其它的会话不能访问到。
  • 临时表可专用于事务处理,也可专用于会话。对于专用于事务处理的临时表而言,数据存在于事务处理期间;对于专用于会话的临时表而言,数据存在于会话期间。在这两种情况下,会话插入的数据专用于会话。每个会话仅可查看和修改自己的数据。因此,临时表的数据从不会获得 DML 锁

 

posted @ 2017-09-06 15:45  blue-sword  阅读(126)  评论(0编辑  收藏  举报