더북(TheBook)

01 | 커서

커서란 특정 SQL 문장을 처리한 결과를 담고 있는 영역(PRIVATE SQL이라는 메모리 영역)을 가리키는 일종의 포인터로, 커서를 사용하면 처리된 SQL 문장의 결과 집합에 접근할 수 있다. SQL문은 집합적 언어이므로 임의의 SQL문이 처리된 결과의 로우 수는 한 개 이상인데, 지금까지 배운 내용에는 이러한 개별 로우에 순차적으로 접근하는 방법은 없었다. 하지만 커서를 사용하면 가능하다.

커서의 종류에는 묵시적 커서와 명시적 커서가 있다. 묵시적 커서 Implicit cursor 란 오라클 내부에서 자동으로 생성되어 사용하는 커서로, SQL 문장(INSERT, UPDATE, MERGE, DELETE, SELECT INTO)이 실행될 때마다 자동으로 만들어져 사용된다. 개발자 입장에서는 이러한 커서의 동작에 관여할 수는 없지만, 커서 속성을 이용하면 해당 커서에 대한 여러 가지 정보를 얻어낼 수 있다. 반면 명시적 커서 Explicit cursor 는 사용자가 직접 정의해서 사용하는 커서를 말하며, 이 장에서는 명시적 커서에 대해 집중적으로 살펴볼 것이다.

묵시적 커서든 명시적 커서든 커서의 삶은“커서 열기(open) - 패치(fetch) - 커서 닫기(close)” 3단계로 진행된다. 다만 명시적 커서는 커서를 선언하는 부분이 추가되고 이후의 세 단계를 직접 구현해야 하지만, 묵시적 커서는 커서 선언도 필요 없고 위 3단계도 자동으로 처리된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.