Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

「SELECT ~ FOR UPDATE」の挙動について

924288Mar 19 2012 — edited Mar 20 2012
「SELECT ~ FOR UPDATE」に対して、私は、「SELECT文を実行した際、行レベルでロックをするための SQL 文」であると。理解しています。
上記を前提で、質問させていただきます。

ora40のスキーマに以下、t1表が存在しているといます。

≪t1≫
A |  B
------------------------------------
1 |  AAA
2 |  BBB
3 |  CCC


≪t1≫に対して、2つのSQL*PLUSを起動して(どちらもora40ユーザ)アクセスします。(以下4パターン)

SQL*PLUS①                  SQL*PLUS②               
----------------------------------------------------------------------------------------------------------
① select * from t1;              select * from t1;            ⇒ SQL*PLUS②で検索可能
② select * from t1;              select * from t1 for update;    ⇒ SQL*PLUS②で検索可能
③ select * from t1 for update;      select * from t1 for update;    ⇒ SQL*PLUS②で検索不可能(行ロックかかるため)
④ select * from t1 for update;      select * from t1;            ⇒ SQL*PLUS②で検索可能(???)

上記④で、検索できるのはなぜでしょうか?
SQL*PLUS①で for update を指定しているので、 SQL*PLUS②で行ロックがかかると想定していました。
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 17 2012
Added on Mar 19 2012
4 comments
2,871 views