本文整理自网络,侵删。
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'
相关阅读 >>
oracle ora-01114、ora-27067错误解决方法
oracle sql语言模糊查询--通配符like的使用教程详解
更多相关阅读请进入《oracle》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。