ITPub博客

首页 > 数据库 > Oracle > FORALL方法批量更新数据简单实例

FORALL方法批量更新数据简单实例

原创 Oracle 作者:ITtomilk 时间:2015-10-31 14:19:39 0 删除 编辑

文修改源:http://www.itpub.net/thread-1941544-1-1.html

----创建一张简单的数据表

点击(此处)折叠或打开

  1. --drop table plch_employees;
  2. CREATE TABLE plch_employees
  3. (
  4.    employee_id INTEGER
  5. , last_name VARCHAR2 (100)
  6. , salary NUMBER
  7. )
  8. /
----为数据表插入数据

点击(此处)折叠或打开

  1. BEGIN
  2.    INSERT INTO plch_employees
  3.         VALUES (100, 'Jobs', 1000000);

  4.    INSERT INTO plch_employees
  5.         VALUES (200, 'Ellison', 1000000);

  6.    INSERT INTO plch_employees
  7.         VALUES (300, 'Gates', 1000000);

  8.    COMMIT;
  9. END;
  10. /
---利用forall循环对数据更新

点击(此处)折叠或打开

  1. DECLARE
  2.    TYPE pls_integer_t IS TABLE OF PLS_INTEGER
  3.                             INDEX BY PLS_INTEGER;

  4.    l_ids pls_integer_t;
  5.    l_indexes pls_integer_t;
  6.    l_salary NUMBER;
  7. BEGIN
  8.    l_ids (1) := 100;
  9.    l_ids (2) := 200;
  10.    l_ids (3) := 300;
  11.    --
  12.    l_indexes (1) := 1;
  13.    l_indexes (2) := 3;

  14.    FORALL indx IN VALUES OF l_indexes
  15.       UPDATE plch_employees
  16.          SET salary = salary * 2
  17.        WHERE employee_id = l_ids (indx);

  18.    SELECT SUM (salary) INTO l_salary FROM plch_employees;
  19.    DBMS_OUTPUT.put_line (l_salary);
  20. END;
  21. /


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30260000/viewspace-1819687/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: FORALL用法小结
请登录后发表评论 登录
全部评论

注册时间:2015-05-25

  • 博文量
    42
  • 访问量
    90728