先创建临时表
语法:
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
   COL1  VARCHAR2(10),
   COL2  NUMBER
) ON COMMIT PRESERVE/DELETE ROWS ;
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束。然后通过创建触发器或者存储过程,添加数据,具体怎样实现根据自己的情况来定。

解决方案 »

  1.   

    我尝试了一下,只能建在sys用户下,我想把临时表建立在scott用户下,怎么办?
    另外能否在详细解释一下PRESERVE/DELETE 的区别
      

  2.   

    可以建在scott用户下,只需用scott/xxxx 登录数据库后,再创建即可。>详细解释一下PRESERVE/DELETE 的区别
    PRESERVE -- 会话级临时表
    DELETE   -- 事务级临时表
      

  3.   

    都可以的 如果哪个用户不行 你可以为这个用户添加create any table的权限  选择preserve的话 只要会话未结束 表里面的数据不会被清空  你可以使用 truncate,来中断会话