Я пытаюсь обновить столбцы, используя для всех. Заданная часть инструкции обновления построена, а затем передана в оператор for all. В заданной части может быть несколько столбцов. Но это вызывает ошибку: «Отсутствует знак равенства». Любой другой способ решить эту проблему?Обновление нескольких столбцов для всех
DECLARE
V_COL_LIST VARCHAR2(4000);
type emp_t
IS
TABLE OF NUMBER;
emp_id emp_t;
BEGIN
SELECT employee_id bulk collect
INTO emp_id
FROM employees
WHERE department_id=10;
V_COL_LIST:='SALARY=EMPLOYEE_ID';
FORALL INDX IN 1..emp_id.count
UPDATE EMPLOYEES SET V_COL_LIST
WHERE EMPLOYEE_ID=emp_id(indx);
END;
Я видел, как вы не принимаете или голосований любых ответов, когда люди отвечают. Это csae, что вы не получаете то, что ожидаете, или вы не знаете, что делать, когда кто-то отвечает на ваш запрос. Я настоятельно рекомендую вам перейти к ссылке http://stackoverflow.com/help/someone-answers – XING
Ваш оператор UPDATE не будет работать как простой SQL, так почему вы ожидаете, что он будет работать в инструкции FORALL? Вы должны начать с написания правильного SQL, а затем адаптировать его для работы в массовой операции. – APC