0
커서를 함수의 입력 매개 변수로 전달하고 있습니다.커서 변수를 여러 번 가져 오는 방법
Function (p_cur IN curType) ...
Loop (outer loop)
Loop (inner loop)
fetch p_cur into p_cur_rec;
exit when p_cur%notfound;
do some processing here...
end loop;
END Loop;
내부 루프는 모든 커서 기록을 가져와 내가 데이터를 처리하기 위해 각 반복 통과 할 수 있었다.
그러나 외부 루프가 두 번째 레코드를 가져 오면 내부 루프가 커서에서 다시 가져 오지 않는 것처럼 보입니다. 커서 레코드가 이미 가져와서 다시 사용할 수없는 것으로 보입니다.
제 질문은이 문제를 어떻게 극복하여 커서를 다시 가져올 수 있습니까?
. afterwads 당신은 커서를 다시 열어야합니다 – schurik
그 간단한 개요에서 당신 주위에 루프를 바꿀 수도 있을지 모르지만, 실제로 당신이하고있는 프로세싱에 달려 있습니다. 다른 옵션으로는 커서 문을 전달하여 재실행 할 수 있습니다 (비싸고 느릴 수 있음). 또는 커서를 PL/SQL 테이블에로드하여 결과를 여러 번 반복 할 수 있습니다. 하지만 그것은 당신이하고있는 일에 달려 있습니다 ... –
왜 같은 쿼리를 여러 번 실행해야합니까? 처리가 데이터를 수정하므로 새로운 데이터를보기 위해 다음 반복을 쿼리해야합니까? 왜 메모리에있는 배열에 데이터를로드하지 않습니까? –