二:引用序列
例如:
一
SQL>create sequence t1_sequence increment by 1 start with 1
二
SQL>create table t1(id number)
SQL>insert into t1 values(t1_sequence.nextval)
SQL> insert into t1 values(t1_sequence.nextval)
三
SQL>select * from t1
ID
----------
1
2
比如你的序号字段名为 id,姓名字段名为 name,表明为table:A方法:
merge into table a
using(select rowid,rownum from talbe) b
on a.rowid=b.rowid
when matched then
update set a.id=b.rownum
这个东东大概是这样,没有环境没法试验。你试试应该可以的
B方法:
游标。大概就是下面的样子,好久没摸oracle了,没环境啊
……
cursor c_tmp is select rownum,id,name from table for update
open c_tmp for update
loop
fetch c_tmp into v_rownum,id,name
exit when c_tmp%notfound
end loop
update table set id=v_rownum WHERE CURRENT OF c_tmp
commit
…………
方法C:
可以应用rowid的意义,通过计算得到一个递增序列,这个有待试验。你也可以考虑,要是成功的话,应该是效率最高的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)