Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!
前回「SQLを利用してデータを操作する」では、DML文によるデータの操作について学習しました。
今回は、以下の項目を確認します。
■例題1
トランザクションについて正しく説明しているものを、次の中からすべて選択してください。
a.トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの間である
b.トランザクションとは、DBに接続してからログアウトするまでの間である
c.トランザクション実行中は、対象の表や行はロックされる
d.COMMIT文、ROLLBACK文、DDL文、DCL文の発行後も、SAVEPOINTには戻れる
■例題の範囲をおさらい
参考:「SQLでデータを自在に操作する」
トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの一連の操作を指します。
■正解
a、c
■解説
選択肢a:トランザクションとは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行してから、次にCOMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行するまでの一連の操作のことです。
選択肢b:DBに接続してからログアウトするまでの間をセッションと呼びます。
選択肢c:トランザクション実行中、UPDATEなどのDML文を発行して変更作業を行っている間は、対象の表がロックされます。トランザクション終了後、ロックは解除されます。
選択肢d:SAVEPOINTは、COMMIT文、ROLLBACK文、DDL文、DCL文のいずれかを発行することによって削除されます。よってこれらの文の発行後にSAVEPOINTに戻ることはできません。
SQL> update test 2 set col1=20 3 where col1=10; 1行が更新されました。 SQL> savepoint a; セーブ・ポイントが作成されました。 SQL> insert into test 2 values(20); 1行が作成されました。 SQL> commit; コミットが完了しました。 SQL> rollback to savepoint a; rollback to savepoint a * 行1でエラーが発生しました。: ORA-01086: セーブポイント'A'は設定されていません |
よって、正しい説明はa、cです。
Copyright © ITmedia, Inc. All Rights Reserved.