表では、A列とB列があります。Bの値を使用してAを更新し、Bを新しい値に更新したいとします。これは原子的に行わなければならない。oracleデータベースのupdate-set-clauseでの式の評価順序
これが働いているが、私はこの
-- Intially A = 1, B = 2
UPDATE T SET A = B, B = 10 WHERE ID = 1;
-- Now A = 2, B = 10
ような何かをしようとしています、私はA = Bが最初に評価され、B = 10が後に評価されることを私が保証ドキュメントを見つけることができません。
私はあなたのテーブルから、キャッシュ内のデータは、そのキャッシュされた情報から読み込まれ、あなたは左のフィールド名を使用するとき、私は考えて最初のプールで、他のRDBMSと同様に、IMO oracle sql reference of the update statement
私はこの答えが正しいと確信していますが、これについてのOracleのドキュメント(「update」のANSIセマンティクスを実装していることさえある)でも参考にしたいと思います。 –
この文書の内容:http://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_standard_sql003.htm#SQLRF55516オラクル社は、RDBMSが「E121-06、Positioned UPDATE文」に完全準拠していることを保証します。 SQL 2008標準です。 – krokodilko