0
나는 emp_id (1 : 4800)와 status (모든 레코드에 대해 0)라는 두 개의 열이있는 4800 개의 레코드가있는 테이블 직원을 보유하고 있습니다. 1,000 레코드를 1 모든 해당 상태의 상태가 설정되어 수집 그래서 대부분을 구현하고 은 제한 1000 수집이Oracle과 함께 벌크 삽입물
update employee set status=2 where emp_id=t_emp_id.emp_id(i);
에서
declare
TYPE bulk_emp_id is table of employee%rowtype;
t_emp_id bulk_emp_id := bulk_emp_id();
cursor c_emp is
select * from employee;
begin
open c_emp;
loop
fetch c_emp
bulk collect into t_emp_id limit 1000;
exit when t_emp_id.count=0;
forall i in t_emp_id.first..t_emp_id.last
update employee set status=2 where emp_id=t_emp_id(i);
COMMIT;
DBMS_OUTPUT.put_line(t_emp_id.count || ' rows');
end loop;
close c_emp;
end;
/
I 오류가 점점 오전 내 코드입니다
PLS-00382 : 표현
코드가 바로 BULK 수집을 위해 잘 작동 잘못된 타입이다.
왜 그렇게 복잡이 문
변경? 단일 업데이트 문을 사용하지 않는 이유는 무엇입니까? – ibre5041