DM的临时表 ON COMMIT 关键词指定表中的数据是事务级还是或会话级的,默认情况下是事务级的。
-
ON COMMIT DELETE ROWS:指定临时表是事务级的,每次事务提交或回滚之后,表中所有数据都被删除;
-
ON COMMIT PRESERVE ROWS:指定临时表是会话级的,会话结束时才清空表,并释放临时 B 树。
接下来我们来做系列测试
[root@dm1 bin]# ./disql ljb/DAMENG123@localhost:5237
服务器[localhost:5237]:处于普通打开状态
登录使用时间: 36.942(毫秒)
disql V7.6.0.96-Build(2018.09.19-97292)ENT
Connected to: DM 7.1.6.96
构建基于会话的全局临时表
SQL> --drop table ljb_tmp_session;
2 create global temporary table ljb_tmp_session on commit preserve rows as select * from dba_objects where 1=2;
操作已执行
已用时间: 175.972(毫秒). 执行号:378.
SQL> select table_name,temporary,duration from user_tables where table_name=‘LJB_TMP_SESSION’;
行号 TABLE_NAME TEMPORARY DURATION
1 LJB_TMP_SESSION Y SYS$SESSION