1

我这里有一个问题,我已经有一个名为“SP_DEL_TOKEN”的存储过程,我想每天自动运行存储过程。

这是我完成这项工作的脚本

VAR jobno NUMBER;
BEGIN
DBMS_JOB.SUBMIT(:jobno, 'SP_DEL_TOKEN', SYSDATE, 'SYSDATE+1');
COMMIT;
END;
/

但是当我执行那个脚本时,我遇到了这个错误

ERROR at line 1:
ORA-06550: line 1, column 106:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
:= . ( @ % ;
The symbol ";" was substituted for "END" to continue.
ORA-06512: at "SYS.DBMS_JOB", line 79
ORA-06512: at "SYS.DBMS_JOB", line 136
ORA-06512: at line 2

请帮助我,谢谢你帮助我:)

4

1 回答 1

1

您需要在“what”参数的末尾使用分号。使用'SP_DEL_TOKEN;'而不是'SP_DEL_TOKEN'. 有关更多示例,请参阅手册。

我不确定这是为什么。对于动态 SQL,您不能使用分号,而对于动态 PL/SQL,您需要BEGINand END;。我猜这个参数是在一些奇怪的上下文中使用的。

于 2012-10-23T05:19:16.420 回答