問題ID:19934について
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID:19934について
msg# 1
Kazumi94
投稿数: 6
SELECT文にFOR UPDATE句をつけた場合、SELECT文を実行した場合にも排他ロックのため「ORA-0054
: リソース・ビジー。NOWAITが指定されているか、タイムアウトしました」のエラーメッセージが表示され他のユーザーは該当の行を検索できないが正しいと動作となると思うのですが、問題の理解が違いますでしょうか。
実際にOracleで実行した際にエラーとなっております。
ご確認をお願いいたします。
: リソース・ビジー。NOWAITが指定されているか、タイムアウトしました」のエラーメッセージが表示され他のユーザーは該当の行を検索できないが正しいと動作となると思うのですが、問題の理解が違いますでしょうか。
実際にOracleで実行した際にエラーとなっております。
ご確認をお願いいたします。
Re: 問題ID:19934について
msg# 1.1
quensan
投稿数: 119
SELECT〜FOR UPDATEかけた行を別ユーザからSELECTすることはできました。
pingtユーザ:
SQL> select * from tab1 where a=1 for update;
A
----------
1
別セッション:
SQL> select * from pingt.tab1 where a=1;
A
----------
1
ORA-0054は別セッションでSELECT〜FOR UPDATE NOWAITを実行するか、DDL_LOCK_TIMEOUTパラメータ(デフォルトは0)の待機時間が切れた時と思うのですが、エラーとなったのはどのように実行されたのでしょうか。
pingtユーザ:
SQL> select * from tab1 where a=1 for update;
A
----------
1
別セッション:
SQL> select * from pingt.tab1 where a=1;
A
----------
1
ORA-0054は別セッションでSELECT〜FOR UPDATE NOWAITを実行するか、DDL_LOCK_TIMEOUTパラメータ(デフォルトは0)の待機時間が切れた時と思うのですが、エラーとなったのはどのように実行されたのでしょうか。
Re: 問題ID:19934について
msg# 1.2
Kazumi94
投稿数: 6
ご返信ありがとうございます。
実行した手順を再度見直したところFOR UPDATE NOWAITで実施しておりました。
お騒がせして申しわけございません。
ご教授ありがとうございました。
実行した手順を再度見直したところFOR UPDATE NOWAITで実施しておりました。
お騒がせして申しわけございません。
ご教授ありがとうございました。