看你的临时表是如何创建的了
如果是on commit则在会话结束后表中的数据自动清空
估计是这个问题。

解决方案 »

  1.   

    不是的,这儿的临时表,是我这么叫的,它其实和别的表没有什么区别,只是它起的作用是临时的而矣……两个存储过程的begin下的第一句就是delete from temp1……然后插入新数据供SQL语句使用,所以在执行完存储过程后,temp1,temp2中有数据……直到下一次执行存储过程时,才在存储过程中被删除……请这们大哥你继续关注……
      

  2.   

    你分别在pro1(),pro2(),sql语句前和后 加上调试语句 insert into temp1 values ('调试信息')
    temp1 为一个varchar2字段的表 
    调用方法后,查看temp1表数据,看看在调用方法的过程中,oracle到底是按什么顺序执行的
      

  3.   

    你的存储过程中有COMMIT而且
    方法调用结束后,在oracle环境下运行相同的SQL语句,得到的结果就是temp1,temp2更新后的数据
    说明你的表不是临时表,问题可能是出在java端的SQL语句取数据的时间,你检测检测java程序
      

  4.   

    如果你还对存储过程有疑问,你就只在java端执行存储过程,在oracle环境下执行SQL语句看结果
      

  5.   

    我发现问题可能是这样的,执行SQL的连接的建立时间先于执行存储过程的的连接。大家说这种情况会不会造成这样的结果!
      

  6.   

    我发现问题可能是这样的,执行SQL的连接的建立时间先于执行存储过程的的连接。大家说这种情况会不会造成这样的结果!
    大家快看看呀!是不是呀!
      

  7.   

    try:
    在两个存储过程里面分别加上
    select * from temp1 for update;
    更新数据select * from temp2 for update;
    更新数据
      

  8.   

    把存储过程扔到PL/SQL里执行看看。