の状態は、mytableは、以下の行を想定し、「前」を返すことができます。OracleではのOracle SQLは、私は列の値
id = 1
letter = 'a'
を、人は簡単に以下のことが可能です。
update myTable set
letter = 'b'
where id = 1
returning letter
into myVariable;
とmyVariableは値 'b'を保持します。私が探しています何
は手紙
すなわちの値「の前に」を返すいくつかの方法です。前回の更新置き換える:
update myTable set
letter = 'b'
where id = 1
returning letter "before the update"
into myVariable;
とmyVariable変数はその後、「」値を保持する必要がありますが、
私はT-SQLは、OUTPUT句を経てこれを達成できることを理解しています。
は、これを実現するOracleの同等の方法は、私が最初にちょうど前の値を取得するには、「選択」を行う必要はありませんありますか?
これは興味深いです。 –
ブリリアント溶液!これはちょっと単純化することができます。ちょうど 'select T. *、T.letter AS old_letter .....' – krokodilko
@krokodilko私は "簡略化された"文字をold_letterとしてテストしました。この場合、Oracleは新しい値を返します。 subselectのみがオラクルを騙す – Mike