|
嗨 甲骨文【4】(4) BULK COLLECT INTO return_variable[,return_variable…]];  用于DML处理多行子句,例子:为某部门所有员工增加%比的工资 DECLARE …… BEGIN sql_stat:='UPDATE emptbl SET sal=sal*(1+:percent/100)' 'WHERE deptno=:dno' 'RETURNING ename,sal INTO :name,:salary';
EXECUTE IMMEDIATE sql_stat USING &percent,&dno RETURNING BULK COLLECT INTO ename_table,sal_table;
FOR i IN 1.ename_table.COUNT LOOP dbms_output.put_line( ename_table(i) sal_table(i) ); END LOOP;
END; /
2 FETCH语句,语法为 FETCH dynamic_cursor BULK COLLECT INTO define_variable[,dyfine_variable ...];
3 FORALL语句。适用于DML,不适用于动态的SELECT语句。FORALL语句要与E I 结合使用。语法为 FORALL index IN lower bound..upper bound EXECUTE IMMEDIATE dynamic_string USING bind_argument bind_argumnet(index) [,bind_argument bind_argumnet(index)]… [{RETURNING RETURN} BULK COLLECT INTO bind_argument[,bind_argument…]];
|