UPDATE CUSTOMER_FEEDBACK_POLICY SET POLICYHOLDER_NAME=(select A.first_name||' '||A.last_name "Name",B.POLICY_NO from
NIC_GS.T_NIC_POLICY_CUST_INFO@DBLINK_EBAO A JOIN NIC_GS.T_POLICY_general@DBLINK_EBAO B ON A.POLICY_ID=B.POLICY_ID where
B.POLICY_NO IN(SELECT POLICY_NUMBER FROM CUSTOMER_FEEDBACK_POLICY))
where POLICY_NUMBER in(SELECT POLICY_NUMBER FROM CUSTOMER_FEEDBACK_POLICY);
SQL错误:ORA-00913:值太多 00913. 00000-显示“值太多”。
答案 0 :(得分:0)
ORA-00913: too many values
->您只想更新单个列,而是使用子查询(在子查询中为2列)传递2个值
只需从子查询的B.POLICY_NO
子句中删除SELECT
,如下所示:
UPDATE CUSTOMER_FEEDBACK_POLICY O
SET POLICYHOLDER_NAME=(select MAX(A.first_name||' '||A.last_name) "Name"
from NIC_GS.T_NIC_POLICY_CUST_INFO@DBLINK_EBAO A
JOIN NIC_GS.T_POLICY_general@DBLINK_EBAO B
ON A.POLICY_ID=B.POLICY_ID
where B.POLICY_NO = O.POLICY_NUMBER);