日期:2014-05-16  浏览次数:20734 次

一个存储过程插入临时表 另一个存储过程 查询临时表
是这样 我有一个事务临时表 RcvBusinessHSESSION
我在存储过程A中 往这个表里插入了一部分数据
然后我A里面会调用另一个存储过程B
这个B会查询A刚才插入到临时表中的数据。
但是当我查询的时候 就提示我 试图访问已经在使用的事务处理临时表。。
求大神们帮忙解决一下。。
有没有什么暴力使用的方法。。

------解决方案--------------------
按道理是可以的。。

把你的建表语句 以及 2个过程发出来看看
------解决方案--------------------
刚亲自试了下,没问题啊??
create global temporary table test11 (a number) on commit preserve rows;
/

create or replace procedure testa 
is
begin
  insert into test11 values(1);
  testb;
end;
/

create or replace procedure testb 
is
begin
  for i in (select * from test11) loop
    dbms_output.put_line(i.a);
  end loop;
end;
/

begin
  testa;
end;

------解决方案--------------------
把上面建表语句换成
create global temporary table test11 (a number) on commit delete rows;
也是ok的。
------解决方案--------------------
应该可以的啊 怎么不可以啊
------解决方案--------------------
你把这两个存储过程里的提交都干掉,只能在你调用这两个存储过程的代码块中提交。