记一个Oracle存储过程错误
下面一个存储过程是创建一个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语句后面少了一个分号
作者:心亦
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
|