sqlplus如何添加一个字符串增一序列? Oracle 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嗯,只能创建一个序列值,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; 运行结果是如图: 楼主需要的应该是要自动在左边补零的功能创建sequence调用oracle的LPAD函数就好了。create sequence SEQminvalue 1maxvalue 9999start with 21increment by 1cache 20;INSERT INTO TB(column1)VALUES(LPAD(SEQ.NEXTVAL,4,'0')) 我觉得你可以正常插入数据1,2,3.....,当然可以要使用sequence了。创建sequence语句:create sequence mysequenceincrement by 1start with 1maxvalue 9999cache 10;insert into TB(bill_id)values(mysequence.nextval);然后查询的使用:select to_char(bill_id,'0000') from TB;结果: 使用序列的方式,如果rollback的话序列还是会正常+1不会退回,就不能产生连续的序列,比如,0001commit;0002rollback;0003这样在数据库中就不会存在0002这样的数字,建议查询最大的,然后+1 sql双层分组 怎么写sql 高分求助,sql优化 求一条oracle多表查询的sql,求高手们不吝赐教~ 读取指定分隔符的问题 请教:ORA-03115: 不支持的网络数据类型或表示法 sql优化问题!! 一道面试题,求助 用PL/SQL Developer导入数据时有此提示是什么意思啊? 有无比count执行效率高的汇总语句? Oracle多表关联更新 做java直接转Oracle做DBA 还是先做ETL再做DBA 请教一个行列转换并带数据汇总的sql
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(字段名,填充长度,填充的字符),字段名就是你要对其进行填充的字段(可以是字符数字等)
,填充长度是你填充后字段的长度,填充字符可以使数字、字母等。
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;
运行结果是如图:
创建sequence调用oracle的LPAD函数就好了。create sequence SEQ
minvalue 1
maxvalue 9999
start with 21
increment by 1
cache 20;INSERT INTO TB(column1)VALUES(LPAD(SEQ.NEXTVAL,4,'0'))
创建sequence语句:
create sequence mysequence
increment by 1
start with 1
maxvalue 9999
cache 10;insert into TB(bill_id)values(mysequence.nextval);
然后查询的使用:
select to_char(bill_id,'0000') from TB;结果:
比如,
0001
commit;0002
rollback;
0003
这样在数据库中就不会存在0002这样的数字,
建议查询最大的,然后+1