21장 커서 사용하기
커서 이해하기
SQL 검색 작업은 이라 부르는 여러 행을 반환한다. 간혹 행을 앞뒤로 이동하며 데이터를 가져올 필요가 있는데 이때 커서를 사용할 수 있다.
커서는 DBMS 서버에 저장된 쿼리로 SELECT 문은 아니지만, SELECT 문으로 가져온 결과 집합이다. 커서는 한 번 저장되면, 프로그램에서 필요할 때마다 데이터를 상하로 탐색하면서 검색 결과를 가져올 수 있다.
DBMS마다 다르지만 일반적으로 자주 사용하는 옵션과 기능이다.
커서에 읽기 전용으로 표시하여, 데이터를 읽을 수 있지만 업데이트나 삭제하지 못하게 하는 기능
방향과 위치를 제어할 수 있는 기능
특정한 열만 수정할 수 있게 표시하고, 그 외 열은 수정하지 못하게 하는 기능
커서를 특정한 요청이나 모든 요청에 접근할 수 있게 하는 범위 지정 기능
DBMS에서 가져온 데이터를 복사하여 커서가 연 후 데이터를 사용하는 사이에 데이터가 변경되지 않게 하는 기능
커서는 사용자가 화면의 데이터를 위, 아래로 탐색하며 필요에 따라 변경할 수 있는 대화형 프로그램에서 자주 사용한다.
커서 사용하기
커서는 다음과 같은 방식으로 사용된다.
커서는 반드시 사용하기 전에 선언하여야 한다. 실제 데이터를 가져오진 않고, 사용할 SELECT 문과 커서 옵션을 정의한다.
선언된 커서를 사용하려면, 커서를 열어야 한다. 그러면 이전에 정의한 SELECT 문으로 데이터를 가져온다.
필요시 데이터를 가진 커서에서 개별 행을 가져온다.
커서를 다 사용했으면 커서를 닫고, 가능하면 해제시켜야 한다.
한번 커서를 선언하면 필요시 몇 번이고 다시 열고 닫을 수 있다. 또한 커서를 한 번 열면 그 안의 데이터를 몇 번이고 가져올 수 있다.
커서 만들기
커서는 DECLARE 문을 사용해 만들 수 있다. (DBMS마다 다르다.) DECLARE로 커서 이름을 선언한 다음 SELECT 문을 선언한다. 필요에 따라 WHERE 절이나 다른 절을 사용할 수도 있다. 예시를 보자.
커서가 정의 되었다. 사용해보자.
커서 사용하기
커서는 OPEN CURSOR 문으로 동작한다.
이제 FETCH 문으로 데이터에 접근할 수 있다. FETCH는 어떤 행을 가져올지, 어디서부터 가져올지, 어디에 저장할지를 정의한다.
커서 닫기
사용이 끝난 커서는 닫아야 한다. 뿐만 아니라 SQL Server 같은 일부 DBMS는 커서가 사용한 리소스를 명시적으로 해제해야 한다.
정리하기
커서의 정의와 사용 이유
커서 사용법
Last updated
Was this helpful?