0

Oracle10gの使用

コミットされる前に、同じトランザクション内で新しく更新されたフィールドの値を取得することは可能ですか。

他の2つのストアドプロシージャを呼び出すストアドプロシージャを実行しています。

最初のストアドプロシージャはテーブルからレコードを取得し、そのレコードを更新します。

2番目のストアドプロシージャは同じレコードを取得しますが、最初のストアドプロシージャから新しく更新されたフィールドを使用する必要があります。

次に、コミットが実行されます。

コミットは、両方の手順が正常に実行された場合にのみ実行できます。

2番目のストアドプロシージャは新しく更新されたデータを取得しますか、それとも更新なしで最初のプロシージャで返された同じデータのコピーを取得しますか?

4

1 に答える 1

1

Oracleには、読み取り整合性の非常にシンプルで堅牢な実装があります。

  • ユーザーには、現在のトランザクションによって行われた変更を含む最新バージョンのデータが表示されますが、...
  • ユーザーは、他のユーザーがコミットを発行するまで、さらには新しいステートメントを実行するまで、他のユーザーが行った変更を確認できません。

これについては、コンセプトガイドで説明されています。 詳細をご覧ください

于 2012-11-23T05:22:15.403 に答える