oracle--序列

基本查询

#查询数据字典
SELECT object_name,object_id,object_type from user_objects 
#查询虚拟表 
SELECT 8*7 from DUAL; 
#查询序列明细
SELECT sequence_name,min_value,max_value,increment_by,last_number from user_sequences;

序列说明:


1. 创建序列:

	create sequence 序列名称
	increment by 1 每次增长多少----步长,省略的话,默认1,负值表示递减
	start with 1 从几开始----初始值,默认1
	minvalue 1 最小值 |nominvalue 默认最小值10^26,递增序列最小值为1
	maxvalue 9999999 最大值|nomaxvalue 默认最大值10^27,递减序列最大值为-1
	order 保证序列号按请求顺序产生|noorder 不按照请求的顺序进行生成
	cache 20 缓冲内存块大小,默认为20|nocatch 不对序列进行内存缓冲。 缓冲可以改善序列性能
	cycle 序列生成器的值达到限制值后循环|nocycle表示不循环,继续产生新值就会报错。
一般使用序列会通过函数拼接,生成ID规则:时间戳+序号+序列id
使用序列来产生唯一的数字。
数据字典可以找到序列对象,序列可以被多个对象共享。

2. 查询序列明细

	SELECT sequence_name,min_value,max_value,increment_by,last_number from user_sequences where sequence_name='序列名';

3. 序列初始化

	select 序列名.nextval FROM DUAL; 

4. 查询当前序列参数

	select 序列名.currval FROM DUAL;

5. 修改序列(需要有用户权限):

	Alter sequence 序列名称 
	同新建

6. 删除

DROP sequence 序列名称;

声明:此笔记为2019年的个人笔记,如果和谁的笔记冲突请留言声明删除。

创建函数

	CREATE OR REPLACE FUNCTION FN_GEN_DEMO_ID
	RETURN number
	IS
	ret_value number;
	BEGIN
	select 	to_char(sysdate,'yymmdd')||'1368'||to_char(FLUSR.SEQ_DEMO_USER_CHRR_ID.Nextval,'fm000000') 
	into ret_value from dual;
	RETURN ret_value;
	END FN_GEN_DEMO_ID;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值