update user.a set user.b.value=user.a.id where user.B.COL1=user.A.COL1 and user.B.COL2=user.A.COL2user换成你的数据库的用户名。
解决方案 »
- oracle数据库服务器突然断电造成(ORA-12528监听程序:所有适用都不允许建立新的连接。)
- sql函数转Oracle的一个小问题,求各位大神帮忙............
- 關於oracle bolb的問題!
- 请教多条变一条的SQL(100分)
- 求助:我认为很难转换成oracle的一段SQLServer代码,我没办法了,大家看看该怎么转?
- 急,数据库启动错误:LRM-00109: could not open parameter file '/home/oracle/ora9/dbs/initboci.ora'
- Oracle触发器帮忙看一下!!!
- 关于Oracle疑惑的问题。
- 新手求助--安装oracle客户端问题
- oracle中的表转换成.dbf格式
- 请教:怎样实现这样的查询?
- 大侠们,帮忙啊!!!两个数据库的连接问题
SET B.Value = A.ID
FROM B INNER JOIN A ON (A.COL1 = B.COL1 AND A.COL2 = B.COL2)
GO
应该还有其他方法
b.value = (select a.id from a
where a.col1=b.col1 and a.col2=b.col2)
要确保B.COL1=A.COL1 and B.COL2=A.COL2条件限制后能返回唯一值
WHERE部分我用在select中是行的,不会是误打错列名。UPDATE B
SET B.Value = A.ID
FROM B INNER JOIN A ON (A.COL1 = B.COL1 AND A.COL2 = B.COL2)数据库提示SQL语句不正常结束---不是分号问题,加不加都会提示错误。
为什么这样?以上两种写法是可行的吧?
set b.value = (select a.id from a where a.col1=b.col1 and a.col2=b.col2)
select 要返回多行就会出错 set 后必须要等于一个单值最好用PL/SQLdeclare
cursor UB is select a.id as id, b.rowid as row_id
from a, b where a.col1=b.col1 and a.col2=b.col2;
begin
for tab in UB loop
update b
set value=tab.id
where rowid=tab.row_id;
end loop;
end;