直接在PL/SQL Developer工具中,查看的job的sql脚本。如下:
/*
begin
sys.dbms_job.submit(job => :job,
what => 'declare
descerr varchar2(500);
begin
PROC_EX_USER_INSERT(descerr);
if descerr is null then
commit;
else
rollback;
end if;
end;',
next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
interval => 'sysdate+1/1440');
commit;
end;
/*/把脚本直接粘贴出来,再运行,就报错。“并非所有变量都已经绑定”。我觉得是:job这个变量的问题。
请问该如何解决呢?谢谢。
/*
begin
sys.dbms_job.submit(job => :job,
what => 'declare
descerr varchar2(500);
begin
PROC_EX_USER_INSERT(descerr);
if descerr is null then
commit;
else
rollback;
end if;
end;',
next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
interval => 'sysdate+1/1440');
commit;
end;
/*/把脚本直接粘贴出来,再运行,就报错。“并非所有变量都已经绑定”。我觉得是:job这个变量的问题。
请问该如何解决呢?谢谢。
begin
sys.dbms_job.submit(job => :job,
what => 'kq_active_bk;',
next_date => to_date('13-07-2010 00:10:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate)+1+10/1440');
commit;
end;
/
descerr varchar2(500);
begin
PROC_EX_USER_INSERT(descerr); -- 这里有输入值吗?
if descerr is null then
commit;
else
rollback;
end if;
end;
谢谢你。但是我的给客户sql脚本。尽量不让客户在工具中自己去建立。
SQL> create table t(a date); 表已创建。 创建一个自定义过程
SQL> create or replace procedure test as
2 begin
3 insert into a values(sysdate);
4 end;
5 / 过程已创建。 创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;
4 / PL/SQL 过程已成功完成。 运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 / PL/SQL 过程已成功完成。 SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a; 时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24 删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 / PL/SQL 过程已成功完成。
估计楼主是这步:SQL> variable job1 number;
上次我就是在这步没用variable 这个,报错好像跟你一样,时间有点久,不是记得很清楚。
你必须重定义一个~