大致思路:在oracle中创建一个存放增长值的对象,然后每次向表中插入数据时都调用这个对象的nextval,这样就实现了自增。
第一步:创建一个测试表--T_USERINFO
create table T_USERINFO(
c_id number(10),
c_name varchar2(58)
)
第二步:创建存放增长值的对象--seq_userinfo
create sequence seq_userinfo
minvalue 1
maxvalue 999999999999999
increment by 1
start with 111
cache 24
order
cycle;
第三步:测试,插入数据
insert into T_USERINFO values( seq_userinfo.nextval,'名字'''||seq_userinfo.currval||'''');
如何用存储过程批量得去插入数据呢?
DECLARE
TYPE test_rec IS RECORD(
t_start number(10),
t_end number(10) NOT NULL :='100'-- 默认一百条记录终止
);
v_test test_rec;
BEGIN
delete from T_USERINFO;-- 清空以前的记录
v_test.t_start:= 1; --再次声明变量值
v_test.t_end:= 24; --再次声明变量值
LOOP
EXIT WHEN v_test.t_start>v_test.t_end;
dbms_output.put_line('v_test.t_start的当前值:'||v_test.t_start); -- 输出语句
v_test.t_start := v_test.t_start + 1;
insert into T_USERINFO values( seq_userinfo.nextval,'名字'''||seq_userinfo.currval||''''); --插入语句
commit;
END LOOP;
END;这个存储过程写得比较复杂,还可以更简单,比如用for等的循环,在此不再阐述了、