谈笑有鸿儒,往来无白丁

在恰当的时间、地点以恰当的方式表达给恰当的人...  阅读的时候请注意分类,佛曰我日里面是谈笑文章,其他是各个分类的文章,积极的热情投入到写博的队伍中来,支持blogjava做大做强!向dudu站长致敬>> > 我的微博敬请收听

1、建立测试表

       create table a(a date);

2、创建存储过程

create or replace procedure b as
begin
   insert into a values(sysdate);
end;
/

3、提交创建job

variable aaa number;

begin
   dbms_job.submit(:aaa,'b;',sysdate,'sysdate+1/1440');
   commit;
end;
/

4、执行job

begin
   dbms_job.run(:aaa);
end;

哥们在做得时候没有留意第3步里面的一个分号结果折腾了2天,原来这么简单啊“;”

错误:

;ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 95 列:
PLS-00103: 出现符号 "END"在需要下列之一时:
:= . ( @ % ;
符号 ";" 被替换为 "END" 后继续。
ORA-06512: 在"SYS.DBMS_JOB", line 79
ORA-06512: 在"SYS.DBMS_JOB", line 136
ORA-06512: 在line 2

;5、查看任务结果

select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;

6、删除JOB

 begin
     dbms_job.remove(:aaa);
 end;

posted on 2006-07-24 10:30 坏男孩 阅读(6787) 评论(7)  编辑  收藏 所属分类: ORACLE篇章

FeedBack:
# re: oracle里面job调用存储过程
2008-04-07 19:48 | jing30013
variable aaa number;
begin
dbms_job.submit(:aaa,'b;',sysdate,'sysdate+1/1440');
commit;
end;
SQL> /
begin
*
ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 93 列:
PLS-00201: 必须说明标识符 'B'
ORA-06550: 第 1 行, 第 93 列:
PL/SQL: Statement ignored
ORA-06512: 在"SYS.DBMS_JOB", line 79
ORA-06512: 在"SYS.DBMS_JOB", line 134
ORA-06512: 在line 2
上楼那个大哥说的是第3步的那个分号啊?在我的机子上运行有错啊,麻烦帮我看看啊,现在做毕业设计,想通过调用存储过程统计销售商品的数量,谢谢啊!  回复  更多评论
  
# re: oracle里面job调用存储过程
2008-04-07 19:58 | jing30013
create table system.orders //商品订单表
(ID number(10) primary key,
customer_id number(10) not null,
product_id number(10) not null,
order_quantity number(5),
order_date char(30),
state char(15) CHECK(state IN ('untreated','treated')),
FOREIGN KEY(customer_id) references system.customer On delete Cascade,
FOREIGN KEY(product_id) references system.product On delete Cascade);

我创建的销售统计表和存储过程
销售统计报表
create table system.sell
(product_id number(10) not null,
product_name char(30),
month number(2) default 0,
quantity number(30) default 0,
total_value number(10),
state char(15) CHECK(state IN (‘settled')),
primary key(product_id,month),
FOREIGN KEY(product_ID) references system.product On delete Cascade);

//销售统计存储过程
create or replace procedure SellCount
(product_id in number,quantity out number)
as
begin
select count(order_quantity)
into quantity from system.ORDERS
where product_id=product_id;
end SellCount;

我想请问一下如何通过oraclejob 调用存储器过程让其在每个月末自动统计商品销售的数量,急用啊,谢谢!
  回复  更多评论
  
# re: oracle里面job调用存储过程
2008-04-19 17:06 | CVB
CBCVB  回复  更多评论
  
# re: oracle里面job调用存储过程
2008-04-19 17:06 | CVB
L
L
L
L
L
L
L
L
































LL


L
L
L
  回复  更多评论
  
# re: oracle里面job调用存储过程
2008-04-19 17:07 | CVB
这个网站不合理 可以随便发帖  回复  更多评论
  
# re: oracle里面job调用存储过程
2010-04-13 10:52 | 都是哥
哈哈,哥也没留意那个分号,郁闷了直到看到你郁闷  回复  更多评论
  
# re: oracle里面job调用存储过程
2011-09-21 15:33 | AVs7IwAn
AVs7IwAn @163.com  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: