私はSQL文を実行するプログラムを持っています。トランザクション内では、と同じ sysdateを使用していくつかのテーブルを更新したいと思います。例えば、 。これらの3つの文がトランザクション内で実行されている場合は、それぞれが使用している「SYSDATE」はこの文ではなく、実行されているとして、我々は現在にあるものは何でも、タイムスタンプになります**同じ** sysdateを使用して複数のSQL文を実行する方法はありますか?
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つの文を実行します)取引の開始時に
ストアドプロシージャを作成し、最初にPL/SQLを使用して変数にsysdateを選択しますが、外部プログラムからSQL文を実行する方が好きです。
...セッションのために設定あなたのNLS_DATE_FORMATを調整する必要がある場合があります。それぞれのクエリは、あなたが上でそれをやっているのsysdateのためにわずかに異なるdatetimeを持っています。私はあなたがそのストアドプロシージャを作る必要があると思う。 – Limey