结合网上例子,写了一个小的Procedure,来实现Upgrade 序列的NEXTVAL
CREATE OR REPLACE PROCEDURE proc_upgradesequence (v_seqname VARCHAR2, -- 序列的名称
v_newnum NUMBER) IS -- 需要的NEXTVAL
v_error VARCHAR2 (1000);
ldebug VARCHAR2 (200);
v_currval NUMBER;
BEGIN
ldebug := '1. Get sequnce current value';
EXECUTE IMMEDIATE 'select ' || v_seqname || '.nextval from dual' INTO v_currval;
ldebug := '2. Alter this sequence nocache';
EXECUTE IMMEDIATE 'alter sequence ' || v_seqname || ' nocache';
ldebug := '3. Alter this sequence current value';
EXECUTE IMMEDIATE 'alter SEQUENCE ' || v_seqname || ' increment by ' || TO_CHAR (v_newnum - v_currval - 1) || ' nocache';
ldebug := '4. Get this sequence next value';
EXECUTE IMMEDIATE 'select ' || v_seqname || '.nextval from dual' INTO v_currval;
ldebug := '5. Recover this original sequence increment step';
EXECUTE IMMEDIATE 'alter SEQUENCE ' || v_seqname || ' increment by 1 nocache';
EXCEPTION
WHEN OTHERS THEN
v_error := SQLERRM;
DBMS_OUTPUT.put_line(v_error);
END;
分享到:
相关推荐
1、在Oracle sequence首先创建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20; 2、在你的hbm.xml中的配置 seq_id 这样再插入数据的时候,Hibernate会自动生成如下语句: ...
insert into table(id) values (sequence.nextval) 緣,仯芣妸訁 23:26:51 就这么简单一句对吧 胡萝卜须 23:26:58 先创建 胡萝卜须 23:27:17 create sequence seq; 胡萝卜须 23:28:00 create sequence S_S_DEPART ...
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。 1、Create Sequence (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限) CREATE ...
在开发过程中,可能会用到oracle sequence语句,本文以oracle sequence语句如何重置进行介绍,需要的朋友可以参考下Oracle重置sequence语句1 Sql代码 代码如下: DECLARE n NUMBER(10 ); tsql VARCHAR2(100 ); p_...
如果在ORACLE里面用惯了Sequence的兄弟们,要在SqlServer里实现Sequence,就会发现没有现成的Sequence对象可以Create了。那应该怎么办呢?下面我们在SQLServer中实现Sequence
Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、是否循环等;若需要迁移数据库,...
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的...
oracle的框架主要由物理结构、逻辑结构、内存分配、后台进程、oracle例程、系统改变号 (System Change Number)组成 物理结构 物理结构包含三种数据文件: 1) 控制文件 2) 数据文件 3) 在线重做日志文件 ...
--创建序列 ...insert into user_table(user_id,user_name,user_pwd) vlaues(seq_user.nextval,'tcy','tcy'); --修改序列 alert sequence seq_user increment by 5 maxvalue 100000 nocycle nocache;
--序列drop sequence SEQ_TEST create sequence SEQ_TEST minvalue 1--最小值 nomaxvalue--不设置最大值 increment by 1--每次加1个 start with 1--从1开始计数,nocycle是一直累加,不循环 cache 20 order; --查...
§4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 149 §4.5 视图、同义词和序列有关...
重置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’;...
实验内容与步骤 ORACLE环境中通过触发器可以定义为更复杂的完整性约束 例1:通过触发器产生主键值 create sequence ql minvalue 010341416; create table student(sno number(9) primary key ,sname varchar2(20));...
Oracle SQL语句中的Update可以和SEQUENCE联合使用,以达到更新某字段的值连续编号,而不需要使用游标去逐条遍历更新数据库记录。例如 update sample set id = seq_id.nextval; Oracle中的select语句允许使用...
sql> alter index xay_id allocate extent(size 200k datafile \'c:/oracle/index.dbf\'); <8>.alter index xay_id deallocate unused; 、查看索引 SQL>select index_name,index_type,table_name from user...
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2. 单引号的处理 MYSQL里可以用双引号包...
–建递增序列 CREATE SEQUENCE LZEAM_SP_LOOP_EQ_SEQ MINVALUE 1 INCREMENT BY 1 START WITH 1 测试: SELECT LZEAM_SP_LOOP_EQ_SEQ.NEXTVAL FROM DUAL –建触发器 CREATE OR REPLACE TRIGGER LZEAM.LZEAM_SP_LOOP_EQ...
create sequence seq_student start with 6 increment by 1 maxvalue 500 nominvalue nocycle nocache; 创建触发器 create or replace trigger trigger_student before insert on student for each row declare ...
Create sequence IDC increment by 1 start with 1 minvalue 1; create or replace trigger tri_表名 before insert on 表名 for each row begin select IDC.nextval into :new.ID from dual; end tri_...
Connect scott/****@myoracle AS SYSDBA create USER goupiaoXT IDENTIFIED BY passward DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; grant connect to goupiaoXT; grant resource to goupiaoXT; ...