我有二个结构相同的表A,B, 它们有字段ID,data1,data2 ,现在我想把A表的data1复制到B表的data1中,根据它们的ID如果相同的话,
我这样写不行哦update B set B.data1=A.data1 from A,B where A.ID=B.ID
为什么这样不行呢,请高手指点下,在线等待,谢谢了!
我这样写不行哦update B set B.data1=A.data1 from A,B where A.ID=B.ID
为什么这样不行呢,请高手指点下,在线等待,谢谢了!
set b.data1 = (select data1 from a where a.id = b.id)
for data1 in ( select A.data1 from A where A.ID=B.ID)
loop
insert into B(data1) values data1 ;
end loop;
commit;
end;
我根据tom书上改造的,不知道能成吗?你试下!
update(select B.data1 datab,A.data1 dataa from A,B where A.ID=B.ID)
set datab=dataa
我有二个结构相同的表A,B, 它们有字段ID,data1,data2 ,现在我想把A表的data1复制到B表的data1中,根据它们的ID如果相同的话,
我这样写不行哦update B set B.data1=A.data1 from A,B where A.ID=B.ID
为什么这样不行呢,请高手指点下,在线等待,谢谢了!update(select B.data1 datab,A.data1 dataa from A,B where A.ID=B.ID)
set datab=dataa
不用 update B吗?
--9i以上的 merge into
merge into B using A on (A.ID=B.ID)
when matched then
update set B.data1=A.data1
--or 通用的
update b
set b.data1 = (select data1 from a where a.id = b.id)
where exists(select 1 from A where a.id = b.id)
--9i以上的 merge into
merge into B using A on (A.ID=B.ID)
when matched then
update set B.data1=A.data1
--or 通用的
update b
set b.data1 = (select data1 from a where a.id = b.id)
where exists(select 1 from A where a.id = b.id)我用上面所有的方法都不行哦~~忘了跟大家说,ID是NCHAR类型的,那B.data1=A.data1
如何写才行呢?
--9i以上的 merge into
merge into B using A on (A.ID=B.ID)
when matched then
update set B.data1=A.data1
--or 通用的
update b
set b.data1 = (select data1 from a where a.id = b.id)
where exists(select 1 from A where a.id = b.id)我用上面所有的方法都不行哦~~忘了跟大家说,ID是NCHAR类型的,那B.ID=A.ID 这样写可以吗?