创建序列

例子:新建一个序列,每日凌晨0点序列初始值置为0

1、创建序列 BOOKING_Y_SO_NO_SEQ

create sequence BOOKING_Y_SO_NO_SEQ minvalue -999999 maxvalue 999999 start with 1 increment by 1 Nocache order;

2、创建存储过程 MODIFY_BOOKING_Y_SO_NO_SEQ, 把序列号初始值置为1

create or replace procedure MODIFY_BOOKING_Y_SO_NO_SEQ
as
   vn_number       number; 
   vr_sequence  user_sequences%rowtype;
Begin
    select * into vr_sequence from user_sequences t where t.sequence_name='BOOKING_Y_SO_NO_SEQ';

    execute immediate 'alter sequence '||'BOOKING_Y_SO_NO_SEQ'||' increment by '||(1-vr_sequence.last_number)|| ' nocache';
     Select BOOKING_Y_SO_NO_SEQ.Nextval  into vn_number from dual;
    execute immediate 'alter sequence '||'BOOKING_Y_SO_NO_SEQ'||' increment by 1 nocache'; 
exception
   when others then
      null;
end MODIFY_BOOKING_Y_SO_NO_SEQ;

3、创建JOB定时(每天凌晨执行存储过程MODIFY_BOOKING_Y_SO_NO_SEQ);

declare      
  job number;
begin
  sys.dbms_job.submit( job => :job,
  what => 'MODIFY_BOOKING_Y_SO_NO_SEQ;',
  next_date => to_date('12-01-2017 14:17:01', 'dd-mm-yyyy hh24:mi:ss'),
  interval => 'TRUNC(SYSDATE + 1)');--每日凌晨执行一次
  commit;
end;
/

JOB常用属性值

Job

  • 查看所有job:select * from dba_jobs;
  • 查询运行中的JOB:select * from dba_jobs_running;
  • 删除job

    begin   
        dbms_job.remove(:job);//  :job可以用dba_jobs.job的值代替如:664 
    end;
    

存储过程

  • 查询所有存储过程 select * from user_procedures;
  • 删除存储过程 drop procedure MODIFY_BOOKING_Y_SO_NO_SEQ;

序列

  • 查询所有序列 select * from user_sequences;
  • 创建序列 create sequence BOOKING_Y_SO_NO_SEQ minvalue -999999 maxvalue 999999 start with 1 increment by 1 Nocache order;
  • 删除序列 drop sequence BOOKING_Y_SO_NO_SEQ;
  • 查询序列序列下一个值 select BOOKING_Y_SO_NO_SEQ.Nextval from dual;
  • 查询序列当前值 select BOOKING_Y_SO_NO_SEQ.currval from dual;

队列

1、创建一个集合类型的对象(其实就是你所需要的队列表的表结构)

CREATE OR REPLACE Type mt_struc As Object
( id number(5) ,
  name varchar2(30),
  age varchar2(30)
) ;

2、创建队列表

begin
   sys.dbms_aqadm.create_queue_table(queue_table=>'sms_mt_tab', queue_payload_type=>'mt_struc');
end ;

begin
   sys.dbms_aqadm.create_queue_table(queue_table=>'tets_jms_queueb', queue_payload_type=>'MESSAGE') ; --箱管的是 EEIR.MESSAGE
end ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值