Ich versuche, Spalten für alle zu aktualisieren. Der festgelegte Teil der update-Anweisung wird erstellt und dann an die for all-Anweisung übergeben. Es kann mehrere Spalten im Set-Teil geben. Aber es wirft einen Fehler auf: "fehlendes Gleichheitszeichen". Irgendeine andere Methode, um das zu lösen?Update mehrere Spalten mit für alle
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;
Ich habe Sie nicht gesehen akzeptieren oder stimmen alle Antworten, wenn Leute antworten. Ist es die CSA, die Sie nicht bekommen, was Sie erwarten, oder Sie wissen nicht, was tun, wenn jemand Ihre Frage beantwortet. Ich empfehle dringend, dass Sie den Link http://StackOverflow.com/Help/Someone-answers gehen. – XING
Ihre UPDATE-Anweisung würde nicht als einfache SQL arbeiten, also warum sollten Sie erwarten, dass es in einer FORALL-Anweisung funktioniert? Sie sollten mit dem Schreiben von gültigem SQL beginnen und es dann so anpassen, dass es in einer Massenoperation funktioniert. – APC