oracle 在一个事物中,先对一条记录做了修改,在去查询这条记录,希望能得到修改后的记录状态,需要如何设置?

解决方案 »

  1.   

    修改记录 没有commit  记录依然是修改前的  
    commit 后 便可看到修改后的记录 
      

  2.   


    我说的同一事物中,如下:
    ---事物开始---
    update tab set column=value where .. ---更新一个表中字段值
    select column from tab where ..   --在这我希望能得到修改后的值,但现在得到的都是修改前的值
    ---事物结束---
      

  3.   

    如果说是同一个事物,应看到修改后的数据,如果没有commit则别人看到的是修改前的数据,commit后,则所有人都看到修改后的数据
      

  4.   

    应该不会啊,
    SQL> create table test_transaction
      2  (id number(10))
      3  ;
     
    Table created
     
    SQL> insert into test_transaction values(1);
     
    1 row inserted
     
    SQL> set serveroutput on
    SQL> 
    SQL> declare
      2  v_num number(10);
      3  begin
      4   update test_transaction t set t.id=2 where id=1;
      5   select count(*) into v_num  from test_transaction where id=1;
      6   dbms_output.put_line('there is '||v_num||' rows data where id=1');
      7    select count(*) into v_num  from test_transaction where id=2;
      8   dbms_output.put_line('there is '||v_num||' rows data where id=2');
      9  end;
     10  /
     
    there is 0 rows data where id=1
    there is 1 rows data where id=2
     
    PL/SQL procedure successfully completed
     
      

  5.   

    在pl/sql中能达到我说的这个效果,可我在java程序中得到的就是更新前的值,所以我想是不是需要怎么设置一下
      

  6.   

    那你去看看怎么在java里使用事务吧.不应该是事务的问题,而是你没有正确的使用事务.
    java俺也不懂,菜鸟一个,建议去java版问问.