0
DECLARE
L_DEPT_ID employees_test_1.department_id%type;
L_DEPT_NAME VARCHAR(255) := '&2';
columns_updated VARCHAR(255) := 'My check is hopes';
CURSOR CHECK_1
IS
SELECT first_name, last_name, job_id, salary, manager_id, department_id, COMMENTS_RESTORE
from employees_test_1
where salary > 1000
and department_id=L_DEPT_ID;
BEGIN
SELECT department_id
INTO L_DEPT_ID
FROM DEPARTMENTS
WHERE DEPARTMENT_NAME=L_DEPT_NAME;
FOR C1 IN CHECK_1
LOOP
UPDATE employees_test_1 BRD
SET BRD.COMMENTS_RESTORE=columns_updated
WHERE BRD.first_name=C1.first_name
AND BRD.salary=C1.salary
AND BRD.last_name=C1.last_name;
COMMIT;
END LOOP;
END;
嗨我只更新此查詢中的一列。但是它花費了很多時間。你能建議我可以調整的地方 - 這個查詢。如何使用批量採集替換此光標的循環
嗨,謝謝你知道我的意思是如何編寫批量更新語句,我實際上已經與它的語法混淆了。在聲明部分,聲明完成後就像'是'的表格。我不明白這是什麼意思實際上 – user2647888 2014-10-02 15:15:17
的更新,你會使用FORALL。這裏是一篇很好的文章,介紹它的工作原理以及如何使用它:http://www.oracle.com/technetwork/issue-archive/2012/12-sep/o52plsql-1709862.html我會稍微介紹一下如何在我的答案工作,給我一分鐘 – guildsbounty 2014-10-02 15:23:23
好的觀點,但你不能在plsql塊中創建對象類型,而是我建議你使用這樣的記錄:'TYPE employee_block是RECORD(first_name VARCHAR2( 50),工資NUMBER,姓氏VARCHAR2(50);' – Aramillo 2014-10-02 16:12:42