循环便利oracle数据集合简单批量修改

之前 没有 接触过,通过 oracle 自定义 函数 处理问题 。今天有个需求 要求修改一批 字典数据的主见 ID ,变成 自增的。

由于之前 字典数据,是程序员自主维护的,主键起名。千奇百怪~所以这边要求统一下,需求很急。

 

简单的 分析下,无外乎啊就是把数据拿出来,把每条数据的主键更新为 自增变量 , 自增变量累加。这么个很简单的事情~

 

可是由于平时很少写oralce存储过程 或者 自定义函数,所以只有 思路 却不知道该怎么做。没办法,回归java吧。写了个junit 问题解决。解决问题之后,觉得应该去看看这类简单的问题,因为在以后的工作中 可能会用到。于是乎有了下面代码。

 

 

 

UPDATE tablename SET id='c'||id;//这里是为了防止,下面批量修改的时候报唯一约束错误!,ID 是主键

commit; 

 

DECLARE  //类似于java的 声明变量的意思

     newid NUMBER(20):=1;

     CURSOR vo_array IS SELECT * FROM tablename ;

//CURSOR 指的是 指针。这里声明了一个大的集合类型的指针。

begin 

     for  vo in vo_array loop //有些像 for(String [] var : String_array) 的感觉

     update tablename set id = newid where id = vo.id; 

     newid:=newid+1;

     end loop;

end;  

 

你可能感兴趣的:(个人)