CURSOR를 사용하고 있는데 이해가 되지 않는 부분이 있어 질문 드립니다.
A라는 table이 있고 Flag 라는 컬럼이 있습니다.
Declare에서 cursor 선언시에
flag 값이 0인 값들을 대상으로 선언 합니다.
(예를 들어 5행이 대상으로 선택되었습니다.)
그런데 로직 중간에 해당 행들의 Flag 값을 1로 업데이트 해주는 부분이 있습니다.
따라서 그 5행 들의 Flag 값도 1로 바뀝니다.(첫번째 loop 실행시)
문제는 Flag 값이 바뀌긴 했지만 이미 5개의 행이 대상으로
선택 되었으므로 나머지 4개의 행도 루프를 돌며 로직을 수행하는게
맞다고 생각 되는데, 실제로 실행해 보면
나머지 4개의 행에 대해서는 루프를 돌지 않고 그대로 Cursor가 종료 되어 버립니다.
제가 Cursor의 개념에 대해서 잘못 알고 있는것인지....
문제의 원인에 대해 알고 계시는 분이 계시다면 알려 주시면
정말 감사하겠습니다.
감사합니다. |