还是用游标可行,是这样的。declare cursor t_sor is select nn,mm from A; begin for v_sor in t_sor loop insert into b values(empty_clop(),v_sor.mm); update b set nn=v_sor.nn where mm=v_sor.mm; ..... end loop end;
楼上兄弟意思讲得不是很清楚,我不知道意思是不是想从A表查出A.nn,A.mm的值插入到B表中对应的B.nn,B,mm,如果是这样,对这种问题的处理是第一步是 先将A.mm插入B.mm,第二步就是将A.nn的值采用Blob字段写操作(修改操作)对B.nn,这样就可以了,可以参考oracle help 文档
create table b(nn,mm) as select nn,mm from a; alter table b modify (nn clob);
to:chenguoli(bluestar) 能不能把第二步具体一点!
to:ronny5(兔子林) 第一步就会提示非法使用long字段
insert into B select to_lob(nn), mm from A;
暂时替你想了个办法,先把表a 导出来(exp) 然后 rename a to b; alter table b modify(nn clob); 最后再把表a导进去(imp)
cursor t_sor is
select nn,mm from A;
begin
for v_sor in t_sor loop
insert into b values(empty_clop(),v_sor.mm);
update b set nn=v_sor.nn where mm=v_sor.mm;
.....
end loop
end;
先将A.mm插入B.mm,第二步就是将A.nn的值采用Blob字段写操作(修改操作)对B.nn,这样就可以了,可以参考oracle help 文档
alter table b modify (nn clob);
能不能把第二步具体一点!
第一步就会提示非法使用long字段
然后
rename a to b;
alter table b modify(nn clob);
最后再把表a导进去(imp)
还有一个问题!如果在创建的时候不把long类型改为clob,而是还保持long类型,那该怎么办啊?会报非法使用long字段类型的!
有没有其他方法阿?