基本查询
#查询数据字典
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;