当前位置: 移动技术网 > IT编程>数据库>Oracle > Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

2017年11月30日  | 移动技术网IT编程  | 我要评论

空之轨迹sc攻略下载,陆婷婷新故事,泰山旅游网

select to_char(sysdate,'yymmdd')||lpad(refundseq.nextval,6,'0') as res_order_no from dual

该语句拼接 时间 与 lpad产生的 'refundseq.nextval值的前6位有字符,如果不足6位,就用0补足' ,为防止出现重复票号增加时间 ,一天最多出现999999个有效票号

dual : 是oracle的虚拟表,不是真实存在的,又称orcle伪表,方便输出结果集
refundseq : 这个是开发人员自己起的一个"序列"的名字,序列一般用于生成id号
refundseq.nextval : 就是取序列的下一个值

怎么把select to_char(sysdate,'yymmdd')||lpad(refundseq.nextval,6,'0') as res_order_no from dual在java中显示?

//生成交易流水号 
public string getticketno() throws exception { 
 map map = jdbctemplate.queryformap("select to_char(sysdate,'yymmdd')||lpad(refundseq.nextval,6,'0') as ticket_no from dual"); 
 return (string) map.get("res_order_no"); 
} 

一 、 lpad() 、rpad() 函数

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

        * 语法:lpad( string, padded_length, [ pad_string ] )

           string :准备被填充的字符串;

           padded_length :填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

           pad_string :填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。

        用例:

                   * select lpad('asdfg',10,'x') from dual;输出:'xxxxxasdfg'
                   * select lpad('asdfg',10,'jk') from dual;输出:'jkjkjasdfg'
                   * select lpad('asdfg',2) from dual;输出:'as'

        * rpad() 函数从右边对字符串使用指定的字符进行填充,语法格式与lpad格式相同:

                      rpad('demo', 7); 将返回'demo '
                      rpad('demo', 2); 将返回'de'
                      rpad('demo', 8, '0'); 将返回'tech0000'
                      rpad('demo', 4, 'm'); 将返回 'demo'
                      rpad('demo', 5, 'm'); 将返回 'demom'

         拼接——流水号,时间,单号:lpad(流水号 || 时间,6,'0')

二 、 nextval()  函数

        * 序列名.nextval :调用nextval将生成序列中的下一个序列号,调用时要指出序列名(第一次调用该方法值为10,第二次调用为11,第三次调用为12,依次递增)。

        * 在oracle数据库中,什么是序列呢?它的用途是什么?序列(sequence)其实是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

总结

以上就是本文关于oracle生成不重复票号与lpad,rpad与nextval函数解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:、等,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网