我在机器上装了oracle 10g 10.2.0,用pl/sql developer更新数据后在sql plus中查询发现数据还是刚才没有更新时候的,重启数据库服务后就是新的了,不知道这个是怎么回事?反之在sql*plus中更新数据后在pl/sql developer中查询也是更新之前的。在什么地方有缓存之类的东西吗?还望版上的牛人解答一下。 

解决方案 »

  1.   

    你执行update、insert、delete之后,记得提交一下啊!commit,不commit 另一个session当然看不到。
      

  2.   

    估计楼主没有commit,SQLPLUS 默认不是自动提交的. 自动提交命令: 
    SQL>set autocommit on 退出SQLPLUS 时会自动提交
    指定DDL,如CREATE , ALTER, DROP ,会自动提交
    执行DCL,如GRANT,REVOKE,会自动提交 ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716 
      

  3.   

       没有 commit
       update、insert、delete是DML语句!
        需要手动提交!
      

  4.   

    呵呵 你所谓的"缓存"其实是还原段你在更改完数据以后执行
    commit;提交一下
    这样后续的事务才能看到你当前事务所做的操作
      

  5.   

    重启数据库服务后事物会被commit的。
      

  6.   

    set autocommit on 
     好使