SYSで動作する理由 それは特別な特権アカウントであるということです。新しいクレデンシャルを作成し、それをジョブにマップする必要があります
解決策は、DBMS_SCHEDULER.CREATE_CREDENTIAL を使用してクレデンシャルを作成することです。 十分な権限を持つOSアカウントと一緒に、この新しいクレデンシャルをジョブに割り当てます。
トリガーの問題を正直に言うと、まだわかりません。
編集 -Oracleのサブトランザクション機能を使用したソリューションベース
OPの更新とコメントへの反応後:
ワークフローに基づいて、内部のOracleの通知を使用してレスポンシブを実行する方がよいと思います。 監査。外部アプリケーションを介してWindowsイベントログに自分自身をハッキングしようとすると、別の不必要な複雑さの層がもたらされると思います。
DB内にすべてのイベントを保存するテーブルを作成し、そのテーブルの上に、ログテーブルに変更が発生した場合に実行される通知(SMS、メールなど)を含むジョブを作成します。
>
エラーが発生したときにトリガーを使用するには、<を使用する必要があります。 code>プラグマautonomous_transaction
メインスコープから(サブトランザクションを実行できます)。これにより、任意の DML
をコミットできます。 持っているかもしれませんが、残りはロールバックしてください。