oracle创建会话级别的临时表
2013-08-21 18:41
253 查看
create global temporary table myTable on commit preserve rows as select e.empno,e.ename,e.deptno from emp e; 这样写就可以. 原因: 创建临时表时,如果指定on commit preserve rows,则是会话级别临时表,也就是说会话结束后,临时表中的记录会清空. 如果不指定,则默认为on commit delete rows,这是事务级别临时表,该事务结束后记录便会清空. 执行ddl语句,如create,alter,drop语句时,oracle会首先将当前事务中包含的已经执行了的dml语句提交,然后将ddl语句当作一个新的只含一条语句的事务执行并提交. 你创建的是事务级别的临时表,语句结束后事务提交,因此记录没了. 示例: CREATE GLOBAL TEMPORARY TABLE ass_stat_percent ON COMMIT PRESERVE ROWS as (select province,city ,req_time as reqTime,round(sorting_correct_count/decode(sorting_totle_count,0,1,sorting_totle_count),5) as sortingCorrectPercent from (select g.province as province, g.city as city, trunc(g.req_time, 'dd') as req_time, sum(CASE WHEN g.sort_right = 1 then 1 ELSE 0 END) as SORTING_CORRECT_COUNT, count(*) as SORTING_TOTLE_COUNT from ass_req_log g group by g.province,g.city,trunc(g.req_time, 'dd') ))
相关文章推荐
- Oracle创建临时表
- .csv大报表改造-oracle创建事务级临时表
- oracle 创建临时表的几种方法
- Oracle创建临时表
- Oracle两种临时表的创建
- 创建基于事务和基于会话的临时表及临时表建索引的实验
- oracle 11gR2 创建无数据对象临时不分配segment
- Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
- Oracle 临时表的创建与应用
- Oracle 创建临时表
- oracle两种临时表的创建及使用方法
- Oracle 创建临时表的语法
- oracle 创建临时表易犯的一个错误 使用commit
- Oracle创建临时表:CREATE GLOBAL TEMPORARY TABLE
- Oracle 数据库创建事务级或者会话级的临时表
- Oracle 查询,返回记录集,不是用游标,不用创建临时表
- oracle创建事务级临时表
- Oracle创建临时表:CREATE GLOBAL TEMPORARY TABLE
- Oracle两种临时表的创建与使用详解
- Oracle 查询,返回记录集,不是用游标,不用创建临时表----完整版