1.建立JOB
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"', job_type => 'PLSQL_BLOCK', job_action => 'begin purge recyclebin; end; ', number_of_arguments => 0, start_date => NULL, repeat_interval => 'FREQ=WEEKLY;BYDAY=SUN;BYHOUR=0;BYMINUTE=0;BYSECOND=0', end_date => NULL, enabled => FALSE, auto_drop => FALSE, comments => '每周清理回收站'); DBMS_SCHEDULER.SET_ATTRIBUTE( name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"', attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF); DBMS_SCHEDULER.enable( name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"'); END; /
2.执行该JOB报错
BEGIN DBMS_SCHEDULER.RUN_JOB(job_name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"', USE_CURRENT_SESSION => FALSE); END; 报错信息如下: ORA-06550: line 2, column 7: PLS-00103: Encountered the symbol "RECYCLEBIN" when expecting one of the following: := . ( @ % ; result_cache The symbol ":=" was substituted for "RECYCLEBIN" to continue.
3.修改为正确执行方式,重点修改job_action内容
BEGIN DBMS_SCHEDULER.set_attribute( name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"', attribute => 'job_action', value => 'begin execute immediate ''purge recyclebin''; end; '); END; /
4.再次执行完成(无报错)
BEGIN DBMS_SCHEDULER.RUN_JOB(job_name => '"TEST_USER"."PURGE_RECYCLBIN_TEST"', USE_CURRENT_SESSION => FALSE); END; /
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26148431/viewspace-2643640/ ,如需转载,请注明出处,否则将追究法律责任。