DECLARE
TYPE char_rec IS TABLE OF VARCHAR2(5) INDEX BY PLS_INTEGER;
TYPE pls_rec IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
siteno_rec char_rec;
pct_rec pls_rec;
BEGIN
FOR i IN 1 .. 20 LOOP
siteno_rec(i) := to_char(i + 01000);
pct_rec(i):=i * 0.001;
dbms_output.put_line(pct_rec(i));
dbms_output.put_line(siteno_rec(i));
END LOOP;
FORALL i IN 1 .. 20
UPDATE site SET commission_pct = pct_rec(i) WHERE site_no = '0'||siteno_rec(i);
END;
/
注解:
1、forall是一次搞定,不需要写LOOP ...END LOOP;
2、因为forall是一次搞定,所以当用到i时,必须把所有的i的规律变化值存储到一个数组,然后一定搞定,如上'
save excepts : sql%bulk_exceptions.count 错误的条数.无save exceptions 提示时,无错时,count为0,有错时永远是1;
sql%bulk_exceptions.ERROR_INDEX 错误下标;
sql%bulk_exceptions.ERROR_CODE;