zoukankan      html  css  js  c++  java
  • oracle生成流水号

    1:用sequence序列生成流水号 

    create sequence L_SIGN_IN
    minvalue 1
    maxvalue 9999999999999999999999999999
    start with 1
    increment by 1
    cache 20;
    

    这里是生成了序列l_sign_in,最小值为1,增量为1,从1开始,最大值为9999999999999999999999999999,缓存为20.

    我们可以用l_sign_in.nextval可获取序列的值。

    2:利用日期直接生成 to_char(sysdate,'yyyymmdd')此外还可加上别的字符进行拼接。

    例如日志的编号就可以定为LOG||sysdate。

    3:特殊的生成方法。现在好多编号都要求可以删,删了之后还可以利用,前面根据选项进行拼接。

      for k in 0..99 loop
      n:=to_char(k);
      if k<10 then
        v_lab_no:=trim('10010'||v_dcode||'0'||n);
      else
          v_lab_no:=trim('10010'||v_dcode||n);
      end if;
    
      select count(*) into v_count from l_lab_def where trim(lab_no)=trim(v_lab_no);
      if v_count!=0 then b:=b+1;
    
      else
    return;
    end if;
    end loop;
    

     这里是根绝v_dcode(部门编号)生成一个v_lab_no(实验室编号),规则是10010加上部门号加上两位流水号。

    这里是用变量k循环出两位流水号,假设部门编号v_dcode=123,先从0开始,k=0,生成实验室编号为10010123||'0'||'0'即

    v_lab_no=1001012300,然后根据实验室编号在数据库检验,若已存在该编号,循环k=1,否则return,结束。 有类似问题的

    都可以联系讨论。

  • 相关阅读:
    tty & pty & pts
    PageRank
    How to run a terminal inside of vim?
    vimdiff
    svn's tree conflict
    svn's diff command
    符号表分离
    gcc -D
    Options for Debugging Your Program or GCC
    invoking gdb
  • 原文地址:https://www.cnblogs.com/devin818/p/5262600.html
Copyright © 2011-2022 走看看