在sqlplus中我创建了程序,用int值填充我的表GeneratedData ......
create procedure fillGeneratedData (x in int) as
begin
for i in 1..x loop
insert into GeneratedData values (i);
end loop;
end;
/
我想创建job,whitch调用此过程,但它会抛出错误并且不会调用该过程......
BEGIN
sys.dbms_scheduler.create_job(
job_name => 'job1',
job_type => 'PLSQL_BLOCK',
job_action => 'begin exec fillGeneratedData(50000); end;',
repeat_interval => 'FREQ=MINUTELY;INTERVAL=2',
start_date => systimestamp at time zone 'Europe/Belgrade',
auto_drop => FALSE,
enabled => TRUE);
END;
sqlplus说PL / SQL程序成功完成,但是当我查看警报日志时,它会抛出错误:
2014年4月1日星期二00:50:45 文件c:\ app \ adbsuser \ diag \ rdbms \ orcl \ orcl \ trace \ orcl_j000_7516.trc中的错误: ORA-12012:自动执行作业74677时出错 ORA-06550:第1行第734行: PLS-00103:遇到符号""期待以下之一:
:=。 (@%; 符号";"取代了#34;"接着说。 文件c:\ app \ adbsuser \ diag \ rdbms \ orcl \ orcl \ trace \ orcl_j000_7516.trc中的错误: ORA-12012:自动执行作业74679时出错 ORA-06550:第1行第734行: PLS-00103:遇到符号" FILLGENERATEDDATA"期待以下之一:
:=。 (@%; 符号":="取代了#34; FILLGENERATEDDATA"继续。
有人能帮助我吗?
非常感谢。
答案 0 :(得分:3)
首先,PL / SQL块无效。如果你试图只运行
begin
exec fillGeneratedData(50000);
end;
你会收到错误。您不在PL / SQL块中使用exec
- 这是一个SQL * Plus命令。您的PL / SQL块只是
begin
fillGeneratedData(50000);
end;