oracle存储过程和任务计划的问题!!!立刻给分!!!

ssdjmcj8048 3M Cogent 研发部门经理  2004-03-29 12:15:18
要做一个存储过程,每天将一个sequence的值清0,现在我遇到两个问题,
1,首先我写的存储过程编译不过去,请看一下:
IS
BEGIN
DROP SEQUENCE "TEST"."S_Z_TEST";
CREATE SEQUENCE "TEST"."S_Z_TEST" INCREMENT BY 1 START WITH 1
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER;
END TEST;
2,如果存储过程没问题了,那么怎么在oracle的GUI界面里配置计划任务队列
谢谢!解决马上给分!
...全文
44 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlqs 2004-03-29
创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/');  --即每天运行test过程一次
3 end;
4 /

PL/SQL 过程已成功完成。

用你写的过程名替换test就可以了,job1不用管的,系统自动生成job号。
select * from user_jobs
回复
ssdjmcj8048 2004-03-29
谢谢 zlqs(啊啊啊) 这么快的答复,请问以上这些在sqlplus下顺序执行就成?其中:jobl参数传什么过程名吗?另外,任务希望在每天固定的时间点执行如何写?
回复
zlqs 2004-03-29
一个计划任务的简单例子:

创建测试表
SQL> create table a(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 过程已成功完成。
回复
zlqs 2004-03-29
使用动态sql
execute immediate 'drop sequence test.sz_test;'
execute immediate 'create ……'
回复
ssdjmcj8048 2004-03-29
那么我要固定让其在比如说下午13:00运行,如何写?
回复
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2004-03-29 12:15
社区公告
暂无公告