SQL> declare
2 job_city_day2t_city_orders number;
3 begin
4 sys.dbms_job.submit(
5 job =>job_city_day2t_city_orders,
6 what=>'proc_city_date2t_city_orders;',
7 next_date=>sysdate,
8 interval =>'sysdate+1/1440'
9 );
10 commit;
11 end;
12 /
PL/SQL procedure successfully completed
SQL>
SQL> begin
2 dbms_job.run(:job_city_day2t_city_orders);
3 end;
4 /
begin
dbms_job.run(:job_city_day2t_city_orders);
end;
ORA-01008: 并非所有变量都已绑定
2 job_city_day2t_city_orders number;
3 begin
4 sys.dbms_job.submit(
5 job =>job_city_day2t_city_orders,
6 what=>'proc_city_date2t_city_orders;',
7 next_date=>sysdate,
8 interval =>'sysdate+1/1440'
9 );
10 commit;
11 end;
12 /
PL/SQL procedure successfully completed
SQL>
SQL> begin
2 dbms_job.run(:job_city_day2t_city_orders);
3 end;
4 /
begin
dbms_job.run(:job_city_day2t_city_orders);
end;
ORA-01008: 并非所有变量都已绑定
另外看了下你的存储过程,其实不需要用游标的,因为
SELECT max(oper_date) FROM city_day;
和select count(cityid) from t_city_orders
你没有分组,就始终只会出来一条纪录
直接用
SELECT max(oper_date) l_maxOper_date FROM city_day;
select count(cityid) into l_maxId from t_city_orders;
这样直接给两个变量赋值
2 job_city_day2t_city_orders number;
3 begin
4 sys.dbms_job.submit(
5 job =>job_city_day2t_city_orders,
6 what=>'proc_city_date2t_city_orders;',
7 next_date=>sysdate,
8 interval =>'sysdate+1/1440'
9 );
10 commit;
11 end;
12 / ---------declare 改为variable就OK了
这不是说明建成功了吗?
应该是SELECT max(oper_date)
into
l_maxOper_date FROM city_day;
这句不对,一定要固定日期
next_date=>to_date('2008-05-15 10:00:00','yyyy-mm-dd hh24:mi:ss')
照你的改法:
SQL>
SQL> declare
2 job_city_day2t_city_orders number;
3 begin
4 sys.dbms_job.submit(
5 job =>job_city_day2t_city_orders,
6 what=>'proc_city_date2t_city_orders;',
7 next_date=>to_date('2008-05-15 10:00:00','yyyy-mm-dd hh24:mi:ss'),
8 interval =>'sysdate+1/1440'
9 );
10 commit;
11 end;
12 /
PL/SQL procedure successfully completed
SQL>
SQL> begin
2 dbms_job.run(:job_city_day2t_city_orders);
3 end;
4 /
begin
dbms_job.run(:job_city_day2t_city_orders);
end;
ORA-01008: 并非所有变量都已绑定
job_city_day2t_city_orders NUMBER;
BEGIN
SYS.DBMS_JOB.submit (job => job_city_day2t_city_orders,
what => 'proc_city_date2t_city_orders;',
next_date => TO_DATE ('2008-05-15 10:00:00',
'yyyy-mm-dd hh24:mi:ss'
),
INTERVAL => 'sysdate+1/1440',
no_parse => FALSE
);
COMMIT;
END;你复制好再去试试
DECLARE
job_city_day2t_city_orders NUMBER;
BEGIN
SYS.DBMS_JOB.submit (job => job_city_day2t_city_orders,
what => 'proc_city_date2t_city_orders;',
next_date => TO_DATE ('2008-05-15 11:00:00',
'yyyy-mm-dd hh24:mi:ss'
),
INTERVAL => 'sysdate+1/1440',
no_parse => FALSE
);
COMMIT;
END;
SQL> DECLARE
2 job_city_day2t_city_orders NUMBER;
3 BEGIN
4 SYS.DBMS_JOB.submit (job => job_city_day2t_city_orders,
5 what => 'proc_city_date2t_city_orders;',
6 next_date => TO_DATE ('2008-05-15 10:00:00',
7 'yyyy-mm-dd hh24:mi:ss'
8 ),
9 INTERVAL => 'sysdate+1/1440',
10 no_parse => FALSE
11 );
12 COMMIT;
13 END;
14 /
PL/SQL procedure successfully completed
SQL>
SQL> begin
2 dbms_job.run(:job_city_day2t_city_orders);
3 end;
4 /
begin
dbms_job.run(:job_city_day2t_city_orders);
end;
ORA-01008: 并非所有变量都已绑定
SQL>
SQL> DECLARE
2 job_city_day2t_city_orders NUMBER;
3 BEGIN
4 SYS.DBMS_JOB.submit (job => job_city_day2t_city_orders,
5 what => 'proc_city_date2t_city_orders;',
6 next_date => TO_DATE ('2008-05-15 11:00:00',
7 'yyyy-mm-dd hh24:mi:ss'
8 ),
9 INTERVAL => 'sysdate+1/1440',
10 no_parse => FALSE
11 );
12 COMMIT;
13 END;
14 /
PL/SQL procedure successfully completed
SQL>
SQL> begin
2 dbms_job.run(:job_city_day2t_city_orders);
3 end;
4 /
begin
dbms_job.run(:job_city_day2t_city_orders);
end;
ORA-01008: 并非所有变量都已绑定还是不行.
你这个要直接输入job号试啊
查看你建立的JOB号
select job,next_date,next_sec,failures,broken from user_jobs假设你的job号是41
dbms_job.run(41);
dbms_job.run(:job_city_day2t_city_orders);
end;
你这样写还是要叫你输入job号,你不知道job号怎么运行啊
不知道为什么指定job,在pl/sql中生成的job的sql,job没有名字,换成啦job号
begin
sys.dbms_job.change(job => 35,
what => 'proc_city_date2t_city_orders;',
next_date => to_date('16-05-2008 11:38:58', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1/1440');
commit;
end;
/