Przyjmijmy następujące wiersz myTable:Oracle SQL - można zwrócić "przed" stanu wartość kolumny
id = 1
letter = 'a'
W Oracle, można łatwo wykonać następujące czynności:
update myTable set
letter = 'b'
where id = 1
returning letter
into myVariable;
i myVariable będzie wówczas posiadać wartość "b".
Co szukam jest jakiś sposób zwrotu „przed” wartość listu
tj. zastąpić poprzednią aktualizację z:
update myTable set
letter = 'b'
where id = 1
returning letter "before the update"
into myVariable;
i myVariable powinien następnie przytrzymaj wartość 'A';
Rozumiem, że T-SQL może to osiągnąć poprzez klauzulę OUTPUT.
Czy istnieje równoważny sposób Oracle, aby to osiągnąć, więc nie muszę najpierw robić "wybierz" tylko po to, aby uzyskać wcześniejszą wartość?
To jest intrygujące. –
Rozwiązanie Brillant !. Można go nieco uprościć, po prostu wybierz T. *, T.letter AS old_letter ..... ' – krokodilko
@krokodilko Przetestowałem" uproszczony "' letter as old_letter' - nie działa. Oracle w tym przypadku zwraca nową wartość. Tylko podselekcja oszukuje Oracle – Mike