Oracle11g中的临时表
create temprorary table GTT (
column1 varchar2(100)
)on commit preserver rows;
这种临时表示基于会话的,当会话断开之后就会清空临时表中的内容。
但是在Oracle12c中这样创建临时表,当会话断开之后或者执行commit操作后就会清空临时表中的内容。
因为Oracle12C中默认有一个参数
temp_undo_enabled默认是false,因为这样不占用表空间,一commit就清空,所以只需要设置为true
就可以和11g一样了。
看如下操作:
SQL> create global temporary table t ( x int ) on commit preserve rows; Table created. SQL> SQL> conn scott/tiger. Connected. SQL> SQL> alter session set temp_undo_enabled = true; Session altered. SQL> SQL> insert into t 2 select rownum 3 from dual connect by level <= 100; 100 rows created. SQL> SQL> select count(*) from t; COUNT(*) ---------- 100 SQL> SQL> commit; Commit complete. SQL> SQL> select count(*) from t; COUNT(*) ---------- 100 |