Notice
Recent Posts
Recent Comments
Link
투케이2K
150. (Oracle/오라클) cursor 커서 사용해 PL/SQL 메모리 저장 및 fetch 행 출력 실시 본문
[개발 환경 설정]
개발 툴 : Toad
개발 언어 : Oracle
[소스 코드]
DECLARE
/*
[cursor 사용해 SQL 메모리 저장 및 fetch 행 출력 실시]
1. Cursor (커서) : PL/SQL 내부에서 SQL 문장을 처리하는 정보를 저장한 메모리 공간입니다
2. Fetch (페치) : 행을 가져읍니다
3. Open : 저장된 커서의 데이터를 가져올 때 사용합니다
*/
-- [명시적 커서 선언 : cursor [이름] is {sql 문법}]
cursor create_cursor is (
select t_dept_name, t_dept_place
from test_dept
where t_dept_name like '%백제%'
);
-- [커서 실행 결과를 fetch 읽을 때 사용 할 변수 선언]
v_name test_dept.t_dept_name%type;
v_place test_dept.t_dept_place%type;
-- [커서 행 카운트를 위한 변수 선언]
M_CNT NUMBER;
BEGIN
-- [커서 open 열기 실시]
open create_cursor;
-- [커서에 저장된 결과 행이 여러 개인 경우 반복문을 돌려서 출력 실시]
M_CNT := 1; -- 결과 행 카운트 변수 초기값 지정
loop
-- [fetch 를 사용해서 변수 지정 및 출력 실시]
fetch create_cursor into v_name, v_place;
-- [커서에서 더이상 읽을 행이 없는 경우 종료 실시]
exit when create_cursor%notfound;
-- [읽은 행 결과 출력 실시]
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('카운트 : ' || M_CNT);
DBMS_OUTPUT.PUT_LINE('v_name : ' || v_name);
DBMS_OUTPUT.PUT_LINE('v_place : ' || v_place);
DBMS_OUTPUT.PUT_LINE('=============================');
-- [결과행 읽은 카운트 증가 실시]
M_CNT := M_CNT + 1;
end loop;
-- [커서 오픈 종료]
close create_cursor;
END;
/
[결과 출력]
[요약 설명]
/*
[cursor 사용해 SQL 메모리 저장 및 fetch 행 출력 실시]
1. Cursor (커서) : PL/SQL 내부에서 SQL 문장을 처리하는 정보를 저장한 메모리 공간입니다
2. Fetch (페치) : 행을 가져읍니다
3. Open : 저장된 커서의 데이터를 가져올 때 사용합니다
*/
반응형
'OracleDB' 카테고리의 다른 글
Comments