主题:[讨论]oracle job问题
SQL> create or replace procedure SellCount
2 as
3 p_id number(10);
4 p_name char(30);
5 p_cost number(5);
6 p_price number(5);
7 cursor p_cursor
8 is
9 select product_id,product_name,cost,price
10 from system.product;
11 begin
12 update system.sell set state='settled';
13 update system.finance set state='settled';
14 open p_cursor;
15 fetch p_cursor into p_id, p_name,p_cost,p_price;
16 while p_cursor%found
17 loop
18 insert into system.sell(product_id, product_name,month,state)
19 values(p_id, p_name, to_char(sysdate,'yyyy-mm'),'setting');
20 insert into system.finance(product_id, product_name,month,cost, price, margins,state)
21 values(p_id, p_name, to_char(sysdate,'yyyy-mm'),p_cost,p_price,(p_price-p_cost)/p_cost,'s
');
22 fetch p_cursor into p_id, p_name,p_cost,p_price;
23 end loop;
24 close p_cursor;
25 end;
26 /
过程已创建。
SQL> variable jobNum number;
SQL> begin
2 dbms_job.submit(:jobNum,'SellCount;',sysdate,'sysdate+30');
3 commit;
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> exec dbms_job.submit(:jobNum,'SellCount;',sysdate+1/24,'sysdate + 1/1');
PL/SQL 过程已成功完成。
SQL> commit;
为什么我以上的过程都创建成功了,但它不执行呢? 我这个程序的目的是每个月末自动调用上面的存储过程实现商品数量的销售统计,那位高手帮我看看啊,急用啊!
2 as
3 p_id number(10);
4 p_name char(30);
5 p_cost number(5);
6 p_price number(5);
7 cursor p_cursor
8 is
9 select product_id,product_name,cost,price
10 from system.product;
11 begin
12 update system.sell set state='settled';
13 update system.finance set state='settled';
14 open p_cursor;
15 fetch p_cursor into p_id, p_name,p_cost,p_price;
16 while p_cursor%found
17 loop
18 insert into system.sell(product_id, product_name,month,state)
19 values(p_id, p_name, to_char(sysdate,'yyyy-mm'),'setting');
20 insert into system.finance(product_id, product_name,month,cost, price, margins,state)
21 values(p_id, p_name, to_char(sysdate,'yyyy-mm'),p_cost,p_price,(p_price-p_cost)/p_cost,'s
');
22 fetch p_cursor into p_id, p_name,p_cost,p_price;
23 end loop;
24 close p_cursor;
25 end;
26 /
过程已创建。
SQL> variable jobNum number;
SQL> begin
2 dbms_job.submit(:jobNum,'SellCount;',sysdate,'sysdate+30');
3 commit;
4 end;
5 /
PL/SQL 过程已成功完成。
SQL> exec dbms_job.submit(:jobNum,'SellCount;',sysdate+1/24,'sysdate + 1/1');
PL/SQL 过程已成功完成。
SQL> commit;
为什么我以上的过程都创建成功了,但它不执行呢? 我这个程序的目的是每个月末自动调用上面的存储过程实现商品数量的销售统计,那位高手帮我看看啊,急用啊!