Oracle的臨時表頂多只能相當於SQL Server中的全局臨時表,而且它會永久存在,如果你自己不去drop它的話,Oracle是不會自動將其釋放的
CREATE GLOBAL TEMPORARY TABLE temp1
(……
……
sessionid int)
on commit delete rows;

解决方案 »

  1.   

    有两种临时表:
    CREATE  GLOBAL  TEMPORARY  TABLE  TABLENAME  ON  COMMIT  PRESERVE  ROWS ...  --会话级CREATE  GLOBAL  TEMPORARY  TABLE  TABLENAME  ON  COMMIT  PRESERVE  ROWS ...  --事务级事务级遇到事务处理就自动清空表的数据,会话级结束当前会话即断开连接后就没有数据
      

  2.   

    假如你只是想在过程或是函数中使用,还可以写这样的临时表,
    type t_var_temp  is table of char(8) index by binary_integer; ,
    后面再写诸如v_t_var_temp t_var_temp这样的定义就可以使用了;
    这样写相当于是数组的写法,有时挺有用的,生命周期中只在这个过程或是函数中