Oracle 产生当天日期+流水号如20100114001编号

在Oracle中,可以通过创建序列和结合日期函数来生成当天日期加流水号的编号。首先创建一个序列,然后使用`to_char(sysdate, 'yyyymmdd')`获取日期并用`lpad`填充序列的值。为了每天重置序列,可以编写存储过程和调度作业(job)。存储过程用于将序列递减到0,然后恢复递增。最后,设置作业在每天0点运行以重置序列。" 107303081,1403751,Golang WithCancel 深入解析,"['Golang', '上下文管理', '并发编程']
摘要由CSDN通过智能技术生成

 问题如 http://www.iteye.com/wiki/problem/34022 知道上 所说

1  先建立序列

 create sequence testseq increment by 1 start with 1 maxvalue 999;

 

2  采用Oracle 的函数

 

     select to_char(sysdate,'yyyymmdd')||lpad(testseq.nextval,3,'0')  from dual

 

 

3 写存储过程 让序列归零

    create or replace procedure houseNoProce
 as
    n   number(10);
   tsql   varchar2(100);
Begin
  select   testseq.nextval   into   n   from   dual;
  n:=-(n-1);
  tsql:='alter   sequence   testseq   increment   by'||   n;
  execute   immediate   tsql;
  select   testseq.nextval   into   n   from   dual;
  tsql:='alter   sequence   testseq      increment   by   1';
  execute   immediate   tsql;
  end;

 

 

4 建立 job


variable housenojob number;
BEGIN
DBMS_JOB.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值