记一个Oracle存储过程错误

时间:2022-05-14 17:47:57

下面一个存储过程是创建一个job,在5秒后更新一个表:

create or replace
PROCEDURE P_TEST
AS
jobno number;
BEGIN
dbms_job.submit(
jobno,
'update t_zhan set z_name=''aaa'' where z_id=80',
sysdate+5/(24*60*60),-- 5秒
null
);
commit; END P_TEST;

执行此存储过程所报的错误:

Connecting to the database defect_data.
ORA-06550: 第 1 行, 第 135 列:
PL/SQL: ORA-00933: SQL 命令未正确结束
ORA-06550: 第 1 行, 第 93 列:
PL/SQL: SQL Statement ignored
ORA-06550: 第 1 行, 第 139 列:
PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
begin
case declare end exception exit for goto if loop mod null
pragma raise return select update while with <an identifier>
<a double-quoted delimited-identifier
ORA-06512: 在 "SYS.DBMS_JOB", line 79
ORA-06512: 在 "SYS.DBMS_JOB", line 136
ORA-06512: 在 "DEFECT.P_TEST", line 5
ORA-06512: 在 line 2
Process exited.

错误原因:

SQL语句后面少了一个分号