SELECT TO_CHAR(SYSDATE,'YYMMDD')||LPAD(REFUNDSEQ.NEXTVAL,6,'0') AS RES_ORDER_NO FROM DUAL
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");
}
--结束END--
本文标题: Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析
本文链接: https://www.lsjlt.com/news/50613.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-16
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-15
2024-03-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0