需求是这样的, 从EXCEL里面导入的数据到表里面, 比如表的名称叫做TEMP_IMP_A, 数据有2500条, 里面没有ID, 现在添加一列 id,现在要给ID赋上唯一标识,
我开始写脚本,
update temp_imp_a aaa set id=(select rownum as id from temp_imp_a bbb where bbb.b=aaa.b );
b 有重复的数据 达不到效果。
写函数
declare
i number;
begin
i := 1;
loop
exit when i > 2500;
update temp_imp_a aa set id = i where i = rownum;
i := i + 1;
end loop;
end;
只添加了一行,第一行添加进去了。
由于赶时间,就不敢一直耗着。 开始想用程序for 循环去更新表里面的数据。
想想也麻烦些,后来直接在Excel里面 自动生成,复制到表里面。
------解决思路----------------------
创建一个sequences ,直接update tables set column =sequences.nextval;
这样既可,有重复的值也不影响。
------解决思路----------------------
create table TEMP_IMP_A
(
id NUMBER,
col VARCHAR2(100)
);
insert into TEMP_IMP_A(col) VALUES('aaa');
insert into TEMP_IMP_A(col) VALUES('bbb');
insert into TEMP_IMP_A(col) VALUES('ccc');
create sequence id_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE CACHE 10;
update TEMP_IMP_A set id = id_sequence.nextval;