- 浏览: 128097 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
qindongliang1922:
不错!
linux sort 命令 -
eve:
这个还真没注意,8错
protected访问权限又理解了一下 -
imp860124:
学习了。
struts ActionForward跳转添加参数
--序列 /* 定义语法 CREATE SEQUENCE <sequence_name> INCREMENT BY <integer> 每次的增量 START WITH <integer> 起始值 default=1 MAXVALUE <integer> / NOMAXVALUE 最大值或不限定 MINVALUE <integer> / NOMINVALUE 最小值或不限定 CYCLE / NOCYCLE 达到最大值时循环 或不循环 default NOCYCLE CACHE <#> / NOCACHE 缓存(default 20) 或不循环 ORDER / NOORDER; 排序或不排序 默认NOORDER */ create sequence seq_bird_1 increment by 1 --每次加1 start with 1 --从1开始计数 maxvalue 100000 --最大值 minvalue 1 --最小值 nocycle --一直累加,不循环 cache 20 --缓存 20 noorder --不指定排序顺序 ; create sequence ssss; select ssss.nextval from dual; alter system flush shared_pool;--清空缓存,需要有足够的权限 --再次获取序列的nextval值,会把cache的最后一个值加上增量返回 select ssss.nextval from dual; --select sys_guid() from dual; --查询序列信息 定义属性信息都可查看到 select * from user_sequences us where us.sequence_name='SEQ_BIRD_1'; select * from user_objects uo where uo.object_name='SEQ_BIRD_1' and uo.object_type='SEQUENCE'; --使用序列 declare v_seq int; begin for i in 1..100 loop--循环取100次 select seq_bird_1.nextval into v_seq from dual;--下一个值 dbms_output.put('nextVal'||v_seq||'------'); --当前值,刚创建的seq,必须执行nextval才可获取currval select seq_bird_1.currval into v_seq from dual; dbms_output.put('currVal'||v_seq); dbms_output.put_line('-'); end loop; end; select seq_bird_1.nextval from dual; --修改序列 除了start with不能修改其他的都可以修改 alter sequence seq_bird_1 increment by 2; --删除序列 drop sequence seq_bird_1; --把序列重置,回到初始位置 相当于间距修改序列的start with --创建用于重置的序列 create sequence seq_test_2 start with 1 increment by 1; --多执行几次nextval, select seq_test_2.nextval from dual; --创建用于重置序列的过程,参数为序列的名字 create or replace procedure reset_seq(seq_name varchar2) as curr_val int; d_sql_1 varchar2(200); d_sql_2 varchar2(200); begin --把当前的序列值存放到变量中 d_sql_1 :='select '||seq_name||'.nextval from dual'; execute immediate d_sql_1 into curr_val; --修改序列增量为当前当前值的相反数-1 curr_val := -(curr_val-1); d_sql_2 := 'alter sequence '||seq_name||' increment by '||curr_val; execute immediate d_sql_2; --按上面修改的增量执行一次查询nextval,这时序列当前值变为1 execute immediate d_sql_1 into curr_val; --从新设置序列的增量为1 d_sql_2 := 'alter sequence '||seq_name||' increment by 1'; execute immediate d_sql_2; --execute immediate d_sql_1 into curr_val; --dbms_output.put_line('修改后的现在序列初始值是:'||curr_val); end; --调用过程 begin empty_seq('seq_test_2'); end; --reference --http://psoug.org/reference/sequences.html
发表评论
-
oracle 数据库隔离级别
2014-04-29 17:46 1078事务不同引发的状况: 脏读(Dirty reads ... -
oracle ORA-00257
2014-02-07 10:23 724ORA-00257表示oracle日志文件已满,需清理日志空间 ... -
oracle导入sql文件
2014-01-26 14:17 23481.oracle用户登录 或root下切换 :su - or ... -
oracle 处理死锁
2013-10-30 10:23 574需以dba角色登录 --查询死锁的sql select sq ... -
oracle 数据库自增主键
2011-12-06 11:27 0oracle 自增走序列 当插入数据时,对具体的表定义ddl ... -
oracle 统计当前用户每个表的数据
2011-11-07 15:03 0declare CURSOR cs IS se ... -
oracle table sequence
2011-10-21 13:09 0-- create table tab_1 ( t_id i ... -
oracle pl/sql递归查询
2011-10-13 12:00 2445--测试用表 create table xt( xti ... -
oracle 内建函数(二)——正则
2011-08-23 23:27 0--正则 --regexp_replace - ... -
oracle 内建函数二)--分析函数
2011-08-23 16:14 0--4.分组函数,avg(),count(),ma ... -
oracle 内建函数(一)
2011-08-23 12:01 1442数字函数 --输入和输出都是数字 --abs(x) 取绝 ... -
oracle sql
2011-08-22 17:41 0--union all --*select语句中列数量 ... -
oracle 数据库事务
2011-08-16 14:43 2196数据库事务: 事务: ... -
oracle 用户角色权限管理
2011-08-15 14:15 0select * from default_pwd$; ... -
oracle 存储过程和函数
2011-08-11 18:28 1319--子程序 /* 子程序是被命名的PL/SQL块, ... -
oracle 异常处理
2011-08-09 16:55 0--异常 --预定义异常 pl/sql提供的系统例外 -- ... -
oracle 内置函数
2011-08-09 15:23 0--sql 函数 /* 单行函数:输入一行,输出一行 ... -
oracle 动态sql
2011-08-08 15:32 0--动态sql /* PL/SQL只认用户权限,不认角色 ... -
oracle trigger (触发器)
2011-08-08 11:55 3794--触发器 trigger --1.DML触发器 DM ... -
oracle cursor (游标)
2011-08-10 12:22 2540--ref 游标 /* 显示游标 多行 ...
相关推荐
在Oracle数据库移植过程中,sequence可能失效,本资源可使失效的sequence重新恢复作用
在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢? 事务回滚引起的跳号 不管序列有...
Oracle自增长主键自动生成类 public static int nextID String table { if table null return 1; table table toLowerCase ; String strKey table; if sequences containsKey strKey { ...
以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环....
主要介绍了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
给大家分享MyBatis Oracle 自增序列的实现方法及mybatis配置oracle的主键自增长的方法,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列, 序列中的可以升序生成,也可以降序生成。创建序列的语法是: 语法结构:创建序列 CREATE SEQUENCE sequence_name [START WITH ...
在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 1、Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTest INCREMENT...
sequence-generator简介类似于oracle的sequence,但更加强大支持分布式环境下sequence的生成使用乐观锁和AtomicLong确保sequence的唯一性使用及其简单db scriptCREATE TABLE sequence_database.sequence ( name ...
重置oracle序列从指定数字开始 代码如下: declare n number(10); v_startnum number(10):=10000001;–从多少开始 v_step number(10):=1;–步进 tsql varchar2(200); v_seqname varchar2(200):=’MIP_JF_SEQUENCE’;...
NULL 博文链接:https://snowelf.iteye.com/blog/575555
oracle自动增长列。 自动序列化, SEQUENCE。
Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...
当向表中插入数据时,主键值自动加一. 实现方法1: 建立一个最小为1,最大为nomaxvalue的一个序列号会自动循环的序列 create sequence 序列名 increment by 1 start with 1 nomaxvalue nocycle; .......
--创建序列 create sequence seq_user start with 1 increment by 1 nomaxvalue cache 10; --使用序列 insert into user_table(user_id,user_name,user_pwd) vlaues(seq_user.nextval,'tcy','tcy'); --修改...
介绍了在oracle里,如何实现序列,并举例说明序列的实现方法
可以根据oracle数据库中存在的sequence,生成建立语句
今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...
如何实现Oracle主键自增,通过写sequence和触发器,很全面,绝对帮你解决问题