当前位置: 代码迷 >> Oracle技术 >> 最容易的一个Oracle批量修改
  详细解决方案

最容易的一个Oracle批量修改

热度:136   发布时间:2016-04-24 08:07:26.0
最简单的一个Oracle批量修改
需求是这样的, 从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;
  相关解决方案