oracle的临时表有两种,一种是基于事务的,一种是基于session级。
临时表一旦建立,表即在数据库中存在,当你用完之后表中的数据就没用了。
事务级的临时表是在提交之后,表的数据被删除;session级的表是在session结束后表中的数据被删除。

解决方案 »

  1.   

    在建临时表时能指定表空间吗?我看的资料上说临时表的默认表空间是temp,但是我在使用CREATE GLOBAL TEMPORARY TABLE T_emp ( ID VARCHAR2(10), NAME VARCHAR2(50) ) ON COMMIT PRESERVE ROWS 建的表为什么在cwmlite表空间上
      

  2.   

    退出后,ORACLE不会删除临时表
      

  3.   

    1、建的表为什么在cwmlite表空间上?
    2、在企业管理器中能建立临时表吗?
    3、在数据建模时(erwin)能不能建临时表?
      

  4.   

    临时表分两种:
    create global temporary table(....) on commit delete  事务提交后清除表中数据,
    create global temporary table(....) on commit preserve 会话结束后清除表中数据
    因此,临时表在某些时刻,是存在着数据的。我们通常对它的应用是在一个存储过程当中,将一个数据插入临时表,然后再从该临时表搜索我们要的数据集返回,最后执行commit,将数据从表中清空。创建了临时表之后,表结构就存在于数据库当中,由系统自动维护,除非你执行drop table语句。1、建的表为什么在cwmlite表空间上?取决当前用户的默认临时表空间,在创建用户时指定
    2、在企业管理器中能建立临时表吗? 可以
    3、在数据建模时(erwin)能不能建临时表? 不清楚
      

  5.   

    1、我在用Create Global Temporary Table On Commit Preserve Rows创建临时表,为什么退出连接后还能查到临时表,临时表为什么已经存在于数据库中(没有数据),并且临时表的表空间不是temp不论你是事务级还是会话级别,当事务完成或者会话失效,那么表中的数据便已经完成了使命,自动删除了,但是表结构是依然存在的。2、oracle中的临时表是不是和sql server中的临时表原理上不一样,sql server的临时表在退出连接后会自动删除,oracle是不是不能自动删除?原理不一样,oracle不能自动释放表的。
      

  6.   

    我的用户的默认临时表空间是temp呀,我在建临时表时还是在cwmlite表空间上,为什么?