问题:
3. 下面那个选项的情况发生时,数据库会发生自动提交的现象:
 A.往一个表中插入一条记录时
 B.查询一条记录时
 C:电脑发生硬件故障而导致重启
 D:SQL*Plus出现问题时麻烦给出答案,并解析下,谢谢。我的理解: c和D 肯定不是提交的啦,他们应该是回滚了,只是不知道a和b怎么区分,求教了。

解决方案 »

  1.   


    A, 自动提交是要设置的,默认不是自动提交的.自动提交命令:
    SQL>set autocommit on
      

  2.   

    a插入记录肯定要发出提交命令的COMMIT
      

  3.   

    A选项就像1楼说的那样 要设置自动提交才行 不设置就不会自动提交
    B选项么肯定不会了
    C选项你可以插入一条记录 完了直接重启计算机试试 呵呵
    D选项 如果SQL*PLUS是正常退出(比如说通过exit命令退出) 那么是自动提交的
    如果是非正常退出(比如说直接点右上角的关闭按钮) 那么就回滚了
      

  4.   


    默认是不提交的,如果没有修改参数,必须手动commit。commit的作用,生成新的SCN,并将数据写入数据文件永久保存。 因为Oracle 有buffer缓冲,数据写入数据文件可能有缓冲时间。
      

  5.   

    这4种情况都不会提交,除非你commit或设置autocommit
      

  6.   

    B.查询一条记录时
    突然想起来好像查询时自动提交的,记得以前学习MS SQL的时候有过这样一说
    不知道ORACLE里可以套用么
      

  7.   

    oracle里边查询是不会提交的,只有ddl语句和dcl语句会导致自动提交
      

  8.   


    同意,这里和wh以前一起做过实验的,D答案有些暧昧,SQL*Plus出现问题时 究竟是什么问题,网络问题算不算问题。如果是网络问题有是一种完全不同的case。所以这里答案都不正确,勉强可以选D吧。