Обновить один столбец таблицы из соединения с двумя другими таблицами в oracle - PullRequest
0 голосов
/ 09 июля 2020
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 - отображается «слишком много значений».

1 Ответ

0 голосов
/ 09 июля 2020

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...