今天在新建JOB的时候,遇到了下面的错误。
ORA-06550: 第 1 行, 第 102 列:
PLS-00103: 出现符号 "TABLE"在需要下列之一时:
:= . ( @ % ;
ORA-06512: 在 "SYS.DBMS_JOB", line 79
ORA-06512: 在 "SYS.DBMS_JOB", line 136
ORA-06512: 在 line 2
PLS-00103: 出现符号 "TABLE"在需要下列之一时:
:= . ( @ % ;
ORA-06512: 在 "SYS.DBMS_JOB", line 79
ORA-06512: 在 "SYS.DBMS_JOB", line 136
ORA-06512: 在 line 2
begin
sys.dbms_job.submit(job => :job,
what => 'truncate table a;',
next_date => to_date('25-11-2011 14:55:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'null');
commit;
end;
sys.dbms_job.submit(job => :job,
what => 'truncate table a;',
next_date => to_date('25-11-2011 14:55:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'null');
commit;
end;
原因是在PL/SQL块里,执行DDL语句时,需要用EXECUTE IMMEDIATE将语句包起来。
如:truncate table a;
改为:execute immediate ‘truncate table a’ ;
就OK了~
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9133399/viewspace-712095/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9133399/viewspace-712095/