Привет Я не могу обновить столбец в таблице jobs_new
из таблицы jobs
с помощью курсора, даже я получил правильный вывод в dbms_output
. Он обновляет этот столбец с одинаковым значением ниже кода и, пожалуйста, помогите.Обновление таблицы с помощью курсора
SET SERVER OUTPUT ON;
DECLARE
CURSOR c_emp IS
SELECT
a.job_id,
a.max_salary,
b.job_id
FROM jobs a, jobs_new b
WHERE
a_jobid VARCHAR2(100);
b_jobid VARCHAR2(10);
l_salary NUMBER;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO a_jobid, l_salary, b_jobid;
-- enter code here
EXIT WHEN c_emp%NOTFOUND;
UPDATE jobs_new
SET max_salary = l_salary
WHERE b_jobid = a_jobid;
dbms_output.put_line(l_salary);
END LOOP;
CLOSE c_emp;
END;
/
Да, это заявление об обновлении работает отлично для меня, поэтому мы не можем использовать курсоры для этих ситуаций? – user1477698
Курсоры следует использовать, если есть некоторые сложные вычисления или операции с данными. Хотя полезно, курсоры просто увеличивают накладные расходы на базу данных и способ обновления с помощью курсора, он увеличивает контекстные переключатели. – San