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


文 修改源: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博客 ” ,链接:http://blog.itpub.net/30260000/viewspace-1819687/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30260000/viewspace-1819687/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值