我以前做的系统用的存储过程中用了临时表,但是oracle好像不支持临时表,应该怎样改含有临时表的存储过程?

解决方案 »

  1.   

    當然支持臨時表,在oracle臨時表和固定表的用法一樣。
    Oracle的臨時表頂多只能相當於SQL Server中的全局臨時表,而且它會永久存在,如果你自己不去drop它的話,Oracle是不會自動將其釋放的。
    CREATE GLOBAL TEMPORARY TABLE temp1
    (……
    ……
    sessionid int)
    on commit delete rows;
    我通常都是使用固定表。
      

  2.   

    當然支持臨時表,在oracle臨時表和固定表的用法一樣。
    Oracle的臨時表頂多只能相當於SQL Server中的全局臨時表,而且它會永久存在,如果你自己不去drop它的話,Oracle是不會自動將其釋放的。
    CREATE GLOBAL TEMPORARY TABLE temp1
    (……
    ……
    sessionid int)
    on commit delete rows;
    我通常都是使用固定表。
      

  3.   

    如果我在一个存储过程中用临时表,而oracle的临时表是一个实际的表,那么两个用户同时调用这个存储过程的时候,同事向这个表中更新数据,很可能导致查询的结果错误啊
      

  4.   

    如果这样,你不如动态创建你的临时用的表用完把它DROP掉,
      既然不同存储过程频繁使用到临时表,如果有必要一个存储过程就用自己的临时表。