Oracle 从内部联接查询更新集时出错
我想运行如下查询:Oracle 从内部联接查询更新集时出错,oracle,Oracle,我想运行如下查询: UPDATE I SET I.CAP_NAME = S.CAP_NAME FROM INSURED_FARMERS I INNER JOIN INDIAN_STATES_REGION S ON UPPER(I.STATE_NAME_FI) = UPPER(S.STATE_NAME) 但它抛出一个错误:sql错误ora-00933 sql命令未在第行正确结束: SET I.CAP_NAME=S.CAP_NAME我认为您无法使用联接在Oracle中编写UP
UPDATE I
SET I.CAP_NAME = S.CAP_NAME
FROM INSURED_FARMERS I
INNER JOIN INDIAN_STATES_REGION S
ON UPPER(I.STATE_NAME_FI) = UPPER(S.STATE_NAME)
但它抛出一个错误:sql错误ora-00933 sql命令未在第行正确结束:
SET I.CAP_NAME=S.CAP_NAME我认为您无法使用联接在Oracle中编写UPDATE语句
UPDATE INSURED_FARMERS I
SET I.CAP_NAME = ( SELECT S.CAP_NAME
FROM INDIAN_STATES_REGION S
WHERE UPPER(I.STATE_NAME_FI) = UPPER(S.STATE_NAME) )
WHERE EXISTS ( SELECT S.CAP_NAME
FROM INDIAN_STATES_REGION S
WHERE UPPER(I.STATE_NAME_FI ) = UPPER(S.STATE_NAME) )
请看这里:
您可以采用两种方式:
UPPER(I.STATE\u NAME\u FI)=UPPER(S.STATE\u NAME)
),则使用内联视图因为你跑得更快……我们向路人指出,有两种方法可以做到这一点。i、 e.删除
EXISTS
将导致为所有不匹配的记录设置NULL
。