我正在使用確定的repeat_interval進行工作。我的目標是從表格中檢索這個值,以便我可以在表格中更改此值並相應地修改作業。爲此,我提出以下觸發:如何從數據庫表檢索日曆表達式
CREATE OR REPLACE TRIGGER config_table_aur AFTER
UPDATE OF value ON config_table FOR EACH row WHEN (new.property = 'job_interval') DECLARE v_job NUMBER;
BEGIN
dbms_job.submit (v_job, 'begin
update_interval (' || :new.value || ');
end;');
END;
而這個觸發器調用以下過程:
CREATE OR REPLACE
PROCEDURE update_interval(
p_new_interval IN config_table.value%type)
AS
BEGIN
dbms_scheduler.set_attribute ('jobu', 'repeat_interval', p_new_interval);
END update_interval;
哪裏p_new_interval是我從表中檢索值。那我遇到的問題是,如果我嘗試在表像這樣設置一個值:
FREQ=DAILY; INTERVAL=1;
然後我得到一個錯誤說:
Fila 1: ORA-06550: line 2, column 46:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
year month day hour minute second
The symbol ";" was ignored.
ORA-06512: at "SYS.DBMS_JOB", line 82
ORA-06512: at "SYS.DBMS_JOB", line 140
ORA-06512: at "SOMESCHEMA.CONFIG_TABLE_AUR", line 3
ORA-04088: error during execution of trigger 'SOMESCHEMA.CONFIG_TABLE_AUR'
我想這個問題是屬性值包含分號';'因爲如果我不使用它們,我不會收到錯誤。
你有任何建議來規避這個問題嗎?
謝謝
嘗試移除最後分號 – OldProgrammer