ITPub博客

首页 > 应用开发 > IT综合 > oracle创建固定长度的自增ID

oracle创建固定长度的自增ID

原创 IT综合 作者:Fishwood 时间:2015-10-19 15:16:16 0 删除 编辑
ORACLE的编号和SQL SERVER的不同。SQL SERVER可以设置一个值为自增。 
ORACLE需要先建立一个SEQUENCE,然后用NEXTVAL。
例如,若想生成这样的编码,0001,0002,0003.。。。。。
首先建立一个1-n的整数循环序列,

点击(此处)折叠或打开

  1. CREATE SEQUENCE DATE_SEQ
  2. START WITH 1 --起始值(默认为1可省略)
  3. INCREMENT BY 1 --可省略(默认为1可省略)
  4. MAXVALUE 9999 --最大值9999
  5. CYCLE --循环
  6. NOCACHE --不缓存(可避免产生值不连续的情况)
  7. ORDER --保证按次序产生值

  8. 示例:
  9. create sequence TEST_ID
  10. minvalue 1
  11. maxvalue 9999
  12. start with 1
  13. increment by 1
  14. nocache;
有了1-9999的循环序列,我们就可以 
TO_CHAR(DATE_SEQ.NEXTVAL) 先将其转换为字符形式。 
然后 LPAD(TO_CHAR(DATE_SEQ.NEXTVAL),4,'0') 对其进行4位加'0'补齐长度。例如2,补齐为0002。
然后加上插入的日期(只要年月) 
TO_CHAR(SYSDATE,'YYYYMM')||LPAD(TO_CHAR(DATE_SEQ.NEXTVAL),4,'0') --这样可以实现日期+编码的格式。
原文地址:http://plat.delit.cn/thread-144-1-1.html
l转载请注明出处:
撰写人:度最科技www.delit.cn


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/328153/viewspace-1814965/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-09-17

  • 博文量
    184
  • 访问量
    937892