zoukankan      html  css  js  c++  java
  • OCP-1Z0-051-V9.02-172题

    172. The SQL statements executed in a user session are as follows:

    SQL> CREATE TABLE product     

    (pcode  NUMBER(2),      

    pname  VARCHAR2(10));

    SQL> INSERT INTO product  VALUES (1, 'pen');

    SQL> INSERT INTO product  VALUES (2,'pencil');

    SQL> SAVEPOINT a;

    SQL> UPDATE product SET pcode = 10 WHERE pcode = 1;

    SQL> SAVEPOINT b;

    SQL> DELETE FROM product  WHERE pcode = 2;

    SQL> COMMIT;

    SQL> DELETE FROM product WHERE pcode=10;

    Which two statements describe the consequences of issuing the ROLLBACK TO SAVE POINT a

    command in the session? (Choose two.)

    A. The rollback generates an error. 

    B. No SQL statements are rolled back.

    C. Only the DELETE statements are rolled back.

    D. Only the second DELETE statement is rolled back.

    E. Both the DELETE statements and the UPDATE statement are rolled back.

    Answer: AB

     答案解析:

    参考:http://blog.csdn.net/rlhua/article/details/12885143

    由于COMMIT命令提交后之前建立的保存点都变成无效的了。
    ROLLBACK TO SAVEPOINT a;命令报错后,只会影响本身这条语句,不会影响其它语句,所以第二个DELETE语句不会回滚。

    实验验证:

    sh@TEST0910> create table product
      2  (pcode number(2),
      3  pname varchar2(10));
     
    Table created.
     
    sh@TEST0910> INSERT INTO product  VALUES (1, 'pen');
     
    1 row created.
     
    sh@TEST0910> INSERT INTO product  VALUES (2,'pencil');
     
    1 row created.
     
    sh@TEST0910>  SAVEPOINT a;
     
    Savepoint created.
     
    sh@TEST0910> UPDATE product SET pcode = 10 WHERE pcode = 1;
     
    1 row updated.
     
    sh@TEST0910>  SAVEPOINT b;
     
    Savepoint created.
     
    sh@TEST0910> DELETE FROM product  WHERE pcode = 2;
     
    1 row deleted.
     
    sh@TEST0910>  COMMIT;
     
    Commit complete.
     
    sh@TEST0910> select * from product;
     
         PCODE PNAME
    ---------- ----------
            10 pen
     
    sh@TEST0910>  DELETE FROM product WHERE pcode=10;
     
    1 row deleted.
     
    sh@TEST0910> ROLLBACK TO SAVE POINT a
      2  ;
    ROLLBACK TO SAVE POINT a
                     *
    ERROR at line 1:
    ORA-00933: SQL command not properly ended


  • 相关阅读:
    【6.29】数组和方法
    【6.28】判断和循环
    【6.27】两个数交换的4种方法
    NodeJS学习笔记
    准备使用马克飞象写博客
    前端基础
    学习笔记
    数据结构 — Java链表
    Java 日期类型与字符串的相互转换
    Scala(一)基础
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13316830.html
Copyright © 2011-2022 走看看