ログオン トリガーの非トランザクション コンテキストでは DDL ステートメントを実行できないこと、そして解決策はジョブであることを (難しい方法で) 学びました。ジョブをすぐに 1 回だけ実行したいので、パラメーターを に設定し、パラメーターnext_date
を に設定します。sysdate
interval
null
トリガーで実行するものは次のとおりです。
dbms_job.submit(
job=>jobNumber,
what=>'someProcedure(someParameter);',
next_date=>sysdate,
interval=>null
);
これは非常にうまく機能しますが、しばらくの間トリガーが起動されると (および上記のコマンドが送信されると)、監査ログは、ジョブが送信されたのと同じユーザー アカウントで 5 秒ごとに正確に再表示され続けることを示します。初めて。関連付けられたプログラムは常に のようなものですORACLE.EXE (J001)
が、もちろんクライアント アプリケーションから開始されたユーザー セッションでした。
誰か私にこれを説明してもらえますか? 私は、永遠に繰り返されるのではなく、ただ一度だけの仕事を遂行することを望んでいました。前もって感謝します!