오라클 트리거를 만들려고했는데 테이블이 삽입 또는 업데이트 된 후에 Linux 호스트에서 파일을 터치합니다.오라클 트리거 코드에서 'exec'사용
그래서 그런 쉘 스크립트 작성 :
#!/bin/bash
touch /export/home/oracle/shell/a.txt
및 권한 수정 : 내가 SYS 로그인 오라클을 사용하고이 같은 스케줄러 작업 생성 후
chmod +x test1.sh
을 :
을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?.