日期:2014-05-17  浏览次数:20936 次

sqlplus如何添加一个字符串增一序列?
用于4位账单编号,bill_id:0001-9999
并且作为主键,每次insert都会自增1
------解决方案--------------------
建一个SUQUENCE吧
------解决方案--------------------
嗯,只能创建一个序列值,insert的时候引用序列的nextval
------解决方案--------------------
SQL> CREATE SEQUENCE e_idx
  2  INCREMENT BY 1
  3   START WITH 1
  4   MAXVALUE   9999
  5  /
 
Sequence created
 
SQL>  select lpad(e_idx.nextval,4,'0') from dual;
 
LPAD(E_IDX.NEXTVAL,4,'0')
-------------------------
0001
 
SQL> 

------解决方案--------------------
首先介绍下lpad用法:
lpad(字段名,填充长度,填充的字符),字段名就是你要对其进行填充的字段(可以是字符数字等)
,填充长度是你填充后字段的长度,填充字符可以使数字、字母等。
 select lpad(5,4,'B') from dual;
结果是:BBB5
按你的要求就要:
先建立一个序列,
  create sequence  bill_id
  increment by 1
  start with 1
  maxvalue 9999;
  在对其进行查找并在之基础上对其进行填充0,
  select lpad(bill_id.nextval,4,'0') from dual;
 运行结果是如图: