在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 锁
文章转载自DBARUN,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




