oracle临时表和sqlserver还是有很大的区别的,一旦临时表建成,不会自动删除表结构,只是根据两种建表的类型来决定在什么时候删除表中数据:
1、会话特有的临时表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT PRESERVE ROWS;2、事务特有的临时表
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT DELETE ROWS;
  
  在Oracle中,全局临时表并不会删除,实际上你只需要建立一次,以后直接应用就行了,这与MS和Sybase不一样。实际上在断开数据库连接时,临时表中数据自动清空,不同的Session之间是隔离的,不许要当心相互影响,不过如果起用了连接共享的话,你要用On Commit delete rows使数据仅在事务内部有效。
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
   COL1  VARCHAR2(10),
   COL2  NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束