我使用pl/sql的时候,修改或删除数据,为什么总是感觉没删掉,删掉后再查询还是有刚才的记录,非要commit才行,有没有办法彻底解决这个问题呢,我对oracle不熟悉,不过我觉得oracle很麻烦,没有中文文档,不是一般人用的,请不是一般人回答,谢谢忘记了,没有分了,不好意思

解决方案 »

  1.   

    肯定得commit才行,这个是oracle数据库为安全方面考虑的。
      

  2.   

    .....记住commit就行了,不用困扰了.
      

  3.   

    commit和rollback是用来结束一个事务的,你做的操作创建了一个事务,只有结束事务,也就是提交,才是操作完成。
      

  4.   

    首先一个事务,必须提交(commit)后才可以反映到数据库中。
    事务提交分为显式提交和隐式提交两种
    显式提交就是使用commit命令进行提交
    隐式提交则为执行ddl语句,正常退出客户端等等。
    其次没有commit也能查询到数据有几种可能:
    1. 你在sqlplus中insert into,然后在同一个session里面查询,这个是可以查询到的。但是其他用户通过其他客户端连到oracle,是查询不到的,如果你没有commit的话。2. 你在sqlplus中insert into,然后关闭sqlplus,sqlplus初始设置是在关闭sqlplus时自动commit的。
    3. 即使你是通过odbc,oci或者其他工具,也许都会有自动commit选项设置(在关闭连接或者退出工具时)
      

  5.   

    必须用commit
    才能真正提交
    否则如果设计成直接提交 那么rollback就没用了
      

  6.   

    你在当前session中,用DML修改删除数据后,可以看到更改后的结果,但是数据库中实际数据并没有被更改,只是放到了回滚段中,其它session查询时仍然是你修改前的数据,只有提交了,数据库中实际数据才真正修改了,其它session也就可以查询到你更改后的结果。
    用DDL操作数据库直接提交,不可回滚。
      

  7.   

    你在输入命令
    ? set
    会出现set命令帮助 看看那个set命令是将自动提交设置打开 也就是将其设置为true以后你每一次操作就自动提交了
      

  8.   

    你在输入命令
    ? set
    会出现set命令帮助 看看那个set命令是将自动提交设置打开 也就是将其设置为true以后你每一次操作就自动提交了
      

  9.   

    设置成autocommit on就不用自己去commit了.
    但是这样对DB也很危险
      

  10.   

    在pl/sql下输入:set autocommit on
    就不用自己去commit了. 
    但是这样对DB也很危险
    设置回来:set autocommit off