1

ログオン トリガーの非トランザクション コンテキストでは DDL ステートメントを実行できないこと、そして解決策はジョブであることを (難しい方法で) 学びました。ジョブをすぐに 1 回だけ実行したいので、パラメーターを に設定し、パラメーターnext_dateを に設定します。sysdateintervalnull

トリガーで実行するものは次のとおりです。

dbms_job.submit(
  job=>jobNumber, 
  what=>'someProcedure(someParameter);',
  next_date=>sysdate,
  interval=>null
);

これは非常にうまく機能しますが、しばらくの間トリガーが起動されると (および上記のコマンドが送信されると)、監査ログは、ジョブが送信されたのと同じユーザー アカウントで 5 秒ごとに正確に再表示され続けることを示します。初めて。関連付けられたプログラムは常に のようなものですORACLE.EXE (J001)が、もちろんクライアント アプリケーションから開始されたユーザー セッションでした。

誰か私にこれを説明してもらえますか? 私は、永遠に繰り返されるのではなく、ただ一度だけの仕事を遂行することを望んでいました。前もって感謝します!

4

0 に答える 0