gpt4 book ai didi

oracle - 从PL/SQL Job调用存储过程

转载 作者:行者123 更新时间:2023-12-03 08:05:33 26 4
gpt4 key购买 nike

在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;
/

我想创建作业,请调用此过程,但是会引发错误,请不要调用该过程...
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:预期以下情况之一时遇到符号“”:

:=。 (@%;
符号“;”被替换为“”以继续。
文件c:\ app \ adbsuser \ diag \ rdbms \ orcl \ orcl \ trace \ orcl_j000_7516.trc中的错误:
ORA-12012:自动执行作业74679时出错
ORA-06550:第1行,第734列:
PLS-00103:预期以下情况之一时遇到符号“FILLGENERATEDDATA”:

:=。 (@%;
用符号“:=”代替“FILLGENERATEDDATA”继续。

有人可以帮我吗?

非常感谢。

最佳答案

首先,您的PL/SQL块无效。如果您尝试运行此

begin 
exec fillGeneratedData(50000);
end;

你会得到一个错误。您不在PL/SQL块中使用 exec -这是SQL * Plus命令。您的PL/SQL块就是
begin 
fillGeneratedData(50000);
end;

关于oracle - 从PL/SQL Job调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com