У меня есть программа, которая выполняет операторы SQL. В рамках транзакции я хотел бы обновить несколько таблиц, используя тот же самый sysdate.
например. (выполните следующие 3 оператора в транзакции)
update table1 set some_col = 'updated' where some_other_col < sysdate;
delete from table2 where some_col < sysdate;
insert into table3 (col1, col2) select c1, c2 from table4 where some_col < sysdate;
Если эти 3 оператора выполняются в транзакции, то «sysdate», который использует каждый из них, будет соответствовать той отметке времени, на которой мы сейчас работаем, а не в начале транзакции.
Я мог бы создать хранимую процедуру и изначально выбрать sysdate в переменную, используя PL / SQL, но я бы предпочел просто запустить операторы sql из внешней программы.