2016-05-17 6 views
2

私がnoobを鳴らしても、事前に申し訳ありません。私は、ストアドプロシージャのコードを探していますし、私が出会った:'for update'の文はどのように機能しますか?

select 
    ... 
into 
    .... 
from 
    .... 
where 
    .... 
for update; 

私はfor update;の目的が何であるかを理解していません。 通常のアップデートは、http://www.mkyong.com/oracle/oracle-stored-procedure-update-example/のように分かります。しかし、for update;とその目的の周りに私の頭を得ることができません。

私は見回しましたが、明確な説明が見つかりませんでした。 documentから

答えて

2

SELECT FOR UPDATEステートメントは、あなたは カーソル結果セット内のレコードをロックすることができます。この文を使用するには、レコード を変更する必要はありません。レコードロックは、 次のコミットまたはロールバックステートメントが発行されたときに解放されます。

をFOR UPDATE句があなたのトランザクションを終了するまで、他の のユーザーが行をロックまたは更新できないように、あなたが選択した行をロックすることができます:

も言うOracle docsを参照してください。 この句は、サブクエリ内の ではなく、最上位のSELECT文でのみ指定できます。

したがって、トランザクション中に行をロックして他のトランザクションで使用できないようにする目的で使用されています。

FOR UPDATE Clause in a SELECT Statementを参照して、私たちがどのように使用できるかを知ることもできます。

+0

これは明らかです。ありがとうございました。私は '更新のためのそれらの参照を見つけることができませんでした。おそらく、私は間違ってグーグルをしていた。 – DarcliGht

+0

@DarcliGht: - あなたは大歓迎です!副次的な注意:オリジナルのOracleドキュメントからドキュメントを常に見つけようとすると、常に正しい方向に役立ちます。 :) –

+0

その例のように見えますが、そのリンクの画像が壊れています。関連する言い回しを注意深く言い換えてください。 –

関連する問題