私はOracleトリガーを作成しようとしましたが、テーブルが挿入または更新された後、Linuxホストのファイルにタッチします。Oracleトリガーコードで 'exec'を使用
ので、私はそのようなシェルスクリプトを作成します。
#!/bin/bash
touch /export/home/oracle/shell/a.txt
とパーミッションを変更します。
chmod +x test1.sh
は、それから私は、SYSログインオラクルを使用して、このようなスケジューラ・ジョブを作成:
SQL> exec DBMS_SCHEDULER.CREATE_JOB(job_name=>'test1',job_type=>'EXECUTABLE',job_action=>'/export/home/oracle/shell/test1.sh');
PL/SQL procedure successfully completed.
今、私はOracleトリガーを作成し、このスケジューラーのジョブを次のように呼んでいます:
CREATE OR REPLACE TRIGGER MY_OAM_LOG
AFTER INSERT OR UPDATE ON OCS_CHARGE_OFF_AUTOMATION
FOR EACH ROW
BEGIN
exec DBMS_SCHEDULER.RUN_JOB(job_name=>'test1');
END;
/
が、エラー:
SQL> CREATE OR REPLACE TRIGGER MY_OAM_LOG
2 AFTER INSERT OR UPDATE ON OCS_CHARGE_OFF_AUTOMATION
3 FOR EACH ROW
4 BEGIN
5 exec DBMS_SCHEDULER.RUN_JOB(job_name=>'test1');
6 END;
7/
Warning: Trigger created with compilation errors.
SQL> show error
Errors for TRIGGER MY_OAM_LOG:
LINE/COL
--------------------------------------------------------------------------------
ERROR
--------------------------------------------------------------------------------
2/7
PLS-00103: Encountered the symbol "DBMS_SCHEDULER" when expecting one of the fol
lowing:
:= . (@ % ;
The symbol ":=" was substituted for "DBMS_SCHEDULER" to continue.
私は多くのソリューションを検索してい、BU私はそれに対処しますwork.howそれらのどれもありませんPLZ?。