내 프로젝트에는 아래에 이미 작성된 코드가 있습니다. 나는 아래 코드에서 .delete가 무엇을하는지 이해하려고 노력하고있다.커서 변수 .delete는 무엇을합니까?
CURSOR cur_somecur IS
select * from SomeTable;
TYPE my_cur_ty IS TABLE OF MyTable%ROWTYPE INDEX BY BINARY_INTEGER;
my_cur my_cur_ty;
FETCH cur_somecur BULK COLLECT
INTO my_cur LIMIT 1000;
...
LOOP
FORALL idx IN 1 .. my_cur.count SAVE EXCEPTIONS /* This is understood */
...
my_cur.delete; /* What does this do ? */
END LOOP;
...
'delete'는 커서 변수가 아닙니다. 그것은 당신의 경우 컬렉션 전체를 삭제하는 콜렉션 메소드이다 :'my_cur' –
코드 끝에서 DELETE가 사용되지 않으면 어떻게 될까? DELETE는 메모리를 지우는 데 사용됩니까? 그냥 추측 – user2488578
'my_cur'는 콜렉션 (배열)입니다. 그것이 커서가 아닌 커서와 관련이 있다고 제안하기 때문에이 이름은 오해의 소지가 있습니다. PL/SQL은 자체 가비지 콜렉션 (https://en.wikipedia.org/wiki/Garbage_collection_ (computer_science))을 수행하기 때문에 일반적으로 PL/SQL에서 변수를 삭제할 필요가 없습니다. –