• Oracle交易流水号问题


    需求:生成交易流水号,每次新增一条记录时都自动加1,且流水号形式为000000001形式的10位数字。

    思路:利用序列可以生成自增的流水号,只需要在前面添加N个0即可,同时,由于数字的长度一定,因此可以组合使用序列和lpad()函数满足此需求

     代码如下:

    --生成序列
    create sequence SEQ_TEST--序列名称
      increment by 1   --增长量
      start with 1     --起始数
      minvalue 1       
      cache 20;SELECT SEQ_TEST.Nextval FROM dual;        --序列的两个方法:nextval、currval
    SELECT SEQ_TEST.currval FROM dual;
    
    DROP SEQUENCE SEQ_TEST;  --删除序列
    SELECT LPAD(SEQ_TEST.nextval,10,'0')  FROM dual; --查询生成序列的效果,具体使用可自行修改

     补充:

      lpad函数是Oracle数据库函数,lpad函数从左边对字符串使用指定的字符进行填充。从其字面意思也可以理解,l是left的简写,pad是填充的意思,所以lpad就是从左边填充的意思。

    语法格式如下:
      lpad( string, padded_length, [ pad_string ] )
    说明:

      string  准备被填充的字符串;

      padded_length  填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
      pad_string        填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。

    摘自:http://www.linuxidc.com/Linux/2013-11/92828.htm

  • 相关阅读:
    3月6日
    2月28日
    2月23日
    2月20日
    2月19日
    2月18日
    2月17日
    2月16日
    2月15日
    面试算法题——硬币找零
  • 原文地址:https://www.cnblogs.com/chinas/p/6228985.html
Copyright © 2020-2023  润新知