Oracle 集合 bulk collect 例子

来源:互联网 发布:tcp端口是什么 编辑:程序博客网 时间:2024/05/29 17:15
DECLARE
TYPE t_emp IS TABLE OF hr.employees%ROWTYPE;
l_emp t_emp := t_emp();
BEGIN
SELECT * BULK COLLECT
INTO l_emp
FROM hr.employees
WHERE rownum < 10;


FOR i IN 1 .. l_emp.count
LOOP
dbms_output.put_line(l_emp(i).first_name || ' ' || l_emp(i).last_name);
END LOOP;


dbms_output.put_line('--------------------');
l_emp.delete;


FOR emp_cur IN (SELECT *
FROM hr.employees
WHERE rownum < 10)
LOOP
l_emp.extend;
l_emp(l_emp.last) := emp_cur;
END LOOP;


FOR i IN 1 .. l_emp.count
LOOP
dbms_output.put_line(l_emp(i).first_name || ' ' || l_emp(i).last_name);
END LOOP;


dbms_output.put_line(l_emp.last);


END;


运行结果:

Steven King
Neena Kochhar
Lex De Haan
Alexander Hunold
Bruce Ernst
David Austin
Valli Pataballa
Diana Lorentz
Nancy Greenberg
--------------------
Steven King
Neena Kochhar
Lex De Haan
Alexander Hunold
Bruce Ernst
David Austin
Valli Pataballa
Diana Lorentz
Nancy Greenberg
9

0 0