1. 커서의 정의
커서란 SQL Plus에서 사용자가 실행한 SQL문의 단위를 의미합니다.
오라클에서 수행한 모든 쿼리문은 커서 단위로 처리합니다.
PL/SQL의 SQL문처럼 하나의 결과를 리턴하는 경우 커서 없이도 SQL문의 실행결과가 암시적으로 커서에 저장되므로 이를 암시적 커서라고 합니다.
SQL문을 수행한 후에 결과로 얻어지는 행이 여러 개일 경우에는 암시적은 커서에 정보를 저장할 수 없기에 에러가 발생합니다. 이럴 경우에는 반드시 명시적인 커서를 사용해야 합니다.
명시적인 커서는 PL/SQL 레코드(RECORD)와 PL/SQL의 테이블(TABLE)을 결합한 것으로서 프로그램 언어의 구조체 배열과 유사합니다
------------------------------------------------------------------------------------------------------
(오라클에서 CURSOR란 시스템 글로벌 영역의 공유 풀 내에 저장공간을 사용하여 사용자가 SQL 문을 실행시키면 결과값을 저장공간에 가지고 있다가 원하는 시기에 순차적으로 fetch해 처리하여 해당 결과 셋을 프로그래밍적으로 접근할수 있게 도와주는 기능이다.)
------------------------------------------------------------------------------------------------------
2. 커서의 사용(명시적 커서)
1) 커서를 선언한다.
CURSOR cur_name
2)커서를 오픈한다
OPEN cur_name
3)커서에 조회한 결과를 인출해 지정한다.
FECTCH cur_name ....
4)커서를 닫는다
CLOSE cur_name
------------------------------------------------------------------------------------------------------
DECLARE --커서 정의
CURSOR cur_name IS SELECT statement --커서의 선언
BEGIN
OPEN cur_name; --cursor분석 및 실행
LOOP
FETCH cur_name into variable1, variable2; --cursor의 현재 행을 변수에 로드
END LOOP; --가져올 행이 없으면 종료
CLOSE cur_name; --커서를 닫는다
END;
/
------------------------------------------------------------------------------------------------------
3. 특정 부서의 평균급여와 사원수를 출력
출처 : http://hb.hengki.net/98
커서란 SQL Plus에서 사용자가 실행한 SQL문의 단위를 의미합니다.
오라클에서 수행한 모든 쿼리문은 커서 단위로 처리합니다.
PL/SQL의 SQL문처럼 하나의 결과를 리턴하는 경우 커서 없이도 SQL문의 실행결과가 암시적으로 커서에 저장되므로 이를 암시적 커서라고 합니다.
SQL문을 수행한 후에 결과로 얻어지는 행이 여러 개일 경우에는 암시적은 커서에 정보를 저장할 수 없기에 에러가 발생합니다. 이럴 경우에는 반드시 명시적인 커서를 사용해야 합니다.
명시적인 커서는 PL/SQL 레코드(RECORD)와 PL/SQL의 테이블(TABLE)을 결합한 것으로서 프로그램 언어의 구조체 배열과 유사합니다
------------------------------------------------------------------------------------------------------
(오라클에서 CURSOR란 시스템 글로벌 영역의 공유 풀 내에 저장공간을 사용하여 사용자가 SQL 문을 실행시키면 결과값을 저장공간에 가지고 있다가 원하는 시기에 순차적으로 fetch해 처리하여 해당 결과 셋을 프로그래밍적으로 접근할수 있게 도와주는 기능이다.)
------------------------------------------------------------------------------------------------------
2. 커서의 사용(명시적 커서)
1) 커서를 선언한다.
CURSOR cur_name
2)커서를 오픈한다
OPEN cur_name
3)커서에 조회한 결과를 인출해 지정한다.
FECTCH cur_name ....
4)커서를 닫는다
CLOSE cur_name
------------------------------------------------------------------------------------------------------
DECLARE --커서 정의
CURSOR cur_name IS SELECT statement --커서의 선언
BEGIN
OPEN cur_name; --cursor분석 및 실행
LOOP
FETCH cur_name into variable1, variable2; --cursor의 현재 행을 변수에 로드
END LOOP; --가져올 행이 없으면 종료
CLOSE cur_name; --커서를 닫는다
END;
/
------------------------------------------------------------------------------------------------------
3. 특정 부서의 평균급여와 사원수를 출력
출처 : http://hb.hengki.net/98
'ORACLE > PL/SQL' 카테고리의 다른 글
파라미터가 있는 커서 정리 (0) | 2012.03.23 |
---|---|
파라미터가 있는 커서 (0) | 2012.03.22 |
[문제]암시적 커서 (0) | 2012.03.21 |
Loop / For Loop / While Loop (0) | 2012.03.20 |
PL/SQL 이란? (기본개념) (0) | 2012.03.17 |