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

ssdjmcj8048 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界面里配置计划任务队列
谢谢!解决马上给分!
...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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运行,如何写?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧