Я обновляю два столбца в таблице с именем «sample» со значениями 5, если эти условия удовлетворяют;Оператор Oracle Update с ошибкой ORA-00913
1) Если TABLE A.MEM_NBR = TABLE B.MEM_NBR AND TABLE B.M_ID = XXXX, AND TABLE B.CLCL = 1
и, наконец, используя условие соединения, как ТАБЛИЦА A.ID = SAMPLE.ID
2) Если эти условия не хватает, то нам не нужно обновлять таблицу.
Но я получаю сообщение об ошибке;
SQL Error: ORA-00913: too many values
00913. 00000 - "too many values".
Нужна помощь по вышеуказанному сценарию обновления, где я ошибаюсь.
Сценарий, который я использую, заключается в следующем:
UPDATE SAMPLE
SET SAMPLE.PCB = 5, SAMPLE.PCBP_Q = 5
WHERE (
SELECT *
FROM MEMBER_A A,S_NEW B
WHERE A.MEM_NBR = B.MEM_NBR
AND B.M_ID = 1111
AND B.CLCL = 1
AND B.ID = C.ID);
Просто сомнение, как это подзапрос связан с внешней таблицей ОБРАЗЦОМ ? Я думаю, что он обновит все записи в SAMPLE, если внутренний запрос имеет какой-либо результат. Поправьте меня, если я ошибаюсь. – San
@San это прекрасно. Я предполагаю, что вы не уверены, что присоединение к UPDATE, как это, будет вести себя правильно. У меня было это тоже один раз .. обновление происходит на основе каждой строки в проверяемой проверке существует таблица подкатегорий. –
@ Сан: Спасибо за ваш комментарий. Подзапрос и внешний запрос связаны в состоянии «A.ID = C.ID». (Это было неясно в коде OP, потому что псевдоним таблицы не был согласованным.) – bernie