度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 5503|回复: 11

[分享] oracle创建固定长度的自增ID

  [复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
发表于 2020-3-16 11:49:11 | 显示全部楼层 |阅读模式
ORACLE的编号和SQL SERVER的不同。SQL SERVER可以设置一个值为自增。
ORACLE需要先建立一个SEQUENCE,然后用NEXTVAL。

例如,若想生成这样的编码,0001,0002,0003.。。。。。


首先建立一个1-n的整数循环序列,

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

示例:
create sequence TEST_ID  
minvalue 1  
maxvalue 9999
start with 1  
increment by 1  
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') --这样可以实现日期+编码的格式。

回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
 楼主| 发表于 2020-3-16 11:50:01 | 显示全部楼层
沙发自己坐
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
发表于 2020-3-16 20:47:33 | 显示全部楼层
可以,都能写车这么高升的东西!
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
发表于 2020-3-16 21:04:18 | 显示全部楼层
对头,这个就是SEQUENCE,序列的用法。不错不错
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
发表于 2020-3-18 17:29:27 | 显示全部楼层
SEQUENCE你们在构建中用到了吗?
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9705

积分

论坛元老

Rank: 8Rank: 8

积分
9705
发表于 2020-3-19 00:08:01 | 显示全部楼层
张军勇 发表于 2015-10-18 17:29
SEQUENCE你们在构建中用到了吗?

表示目前没有,不过可以先熟悉熟悉
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9705

积分

论坛元老

Rank: 8Rank: 8

积分
9705
发表于 2020-3-19 00:09:26 | 显示全部楼层
这是创建序列吗?yes
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
发表于 2020-3-19 22:35:47 | 显示全部楼层
在这方面sql server处理起来方便些。
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
发表于 2020-5-8 17:09:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
发表于 2020-5-9 17:06:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-3-29 14:06 , Processed in 0.146925 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表