如何从另一个表中的字段更新2列?
在DOMAIN
的{{1}}字段中,我有这个字符串:
TABLE2
我已经提取了;*.mydomain.co.il;
。现在我想:
mydomain.co.il
UR
L.
更新TABLE1
REDIRECT
TABLE1
ErrorMessage:ORA-00933; SQL命令未正确结束
确定。我更新了我的查询,现在我收到此错误:
UPDATE TABLE1
set URL = (SELECT concat('http//', trim(both ';' from DOMAIN))
FROM TABLE2
WHERE id = 99999
)
REDIRECT = (SELECT concat('http//',
trim(both ';' from REGEXP_REPLACE(domain,
'mydomain',
'otherdomain'
)
)
)
FROM TABLE2
WHERE id = 88888
)
为什么缺少SET?
[Oracle Data Provider for .NET] Number: 971
ErrorMessage: ORA-00971: missing SET keyword
答案 0 :(得分:1)
您忘记了两个设置之间的,
:
UPDATE TABLE1
SET URL = (SELECT CONCAT('http//', TRIM(BOTH ';' FROM DOMAIN))
FROM TABLE2
WHERE id = 99999),
REDIRECT = ( SELECT CONCAT('http//', TRIM(BOTH ';' FROM REGEXP_REPLACE(domain , 'mydomain' , 'otherdomain')))
FROM TABLE2
WHERE id = 88888)
答案 1 :(得分:1)
如果您在id上有唯一或主键,则可以使用可更新的联接视图。
http://docs.oracle.com/cd/B19306_01/server.102/b14231/views.htm#i1006232
或者,MERGE可以根据连接更新多个列。