您的位置:首页 > 职场人生

BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

2011-09-06 11:51 603 查看
TYPE emp_table_type IS TABLE OF my_emp%ROWTYPE INDEX BY BINARY_INTEGER;
SELECT * BULK COLLECT INTO v_emp_table FROM my_emp WHERE deptno=&deptno;
','||v_emp_table(i).job||
END;
1. 2. e 类型的名字
指定是一个集合的表的数组类型, 简单的来说就是一个可以存储一列多行的数据类型 , %ROWTYPE INDEX BY BINARY_INTEGER v_emp_table BULK COLLECT INTO v_emp_table.COUNT 里面的数量

TYPE ename_table_type IS TABLE OF my_emp.ename%TYPE;
v_sal_table sal_table_type;
BULK COLLECT INTO v_ename_table,v_sal_table;
END LOOP;
说明部分:
v_ename_table ename_table_type;
3. 用for 把它们打印出来

实验时把set serveroutput on 打开
3. 提取到的数据都在内存中进行处理, 因为在内存处理比较快 , 这是常识 .
例3 :批量插入
/
TYPE ename_table_type IS TABLE OF varchar2(20) INDEX BY BINARY_INTEGER;
BEGIN
v_ename_table(i):='NAME'||to_char(i);
END;
CREATE TABLE my_emp(empno number(4),ename varchar2(15))
TYPE empno_table_type IS TABLE OF my_emp.empno%TYPE INDEX BY BINARY_INTEGER;
v_ename_table ename_table_type;
v_empno_table(i):=i+2000;
FORALL i IN 1..v_empno_table.COUNT UPDATE my_emp SET ename=v_ename_table(i) WHERE empno=v_empno_table(i);
例5 :批量删除
v_empno_table empno_table_type;
v_empno_table(i):=i+2000;
END;
DECLARE
BEGIN
dbms_output.put_line('DEPARTMENT_10:'||SQL%BULK_ROWCOUNT(1)||' rows');
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐