일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Oracle기초
- 자바연산자
- 오라클설치
- 2020정보처리기사실기정리
- PLSQL
- jsp 날짜팝업
- CRUD게시판만들기
- 스프링게시판만들기
- 2020정보처리기사실기
- 게시판만들기
- 스프링 CRUD게시판
- 정처기실기정리
- jsp 팝업띄우기
- spring crud
- 날짜지정팝업
- 자바배열예제
- jsp게시판만들기
- 자바기초
- 정보처리기사실기정리
- 오버라이딩
- 프로그래머스 MYSQL
- 프로그래머스 SQL
- html기초
- 자바 정규표현식 예제
- js datepicker
- 프로그래머스 쿼리문
- spring crud게시판
- crud게시판
- 스프링 crud
- 2020정보처리기사실기요약
Archives
- Today
- Total
영보의 SystemOut.log
[Oracle] PL/SQL- Cursor(커서)와 예제 본문
반응형
개념
# CURSOR
- 오라클 서버는 SQL문을 실행시마다 처리를 위한 메모리 공간을 사용한다. 즉, 사용자가 요청하는 데이터를 데이터베이스 버퍼 캐시에서 커서로 복사해 온 후 커서에서 원하는 데이터를 추출하여 후속 작업을 하게 된다는 뜻이다.
Cursor | 여러개 Row(Record)를 저장할 수 있는 공간 → ResultSet |
처리 | CURSOR → 자바 (ResultSet) |
커서 사용하는 방법 |
|
예제
# 코드 위에 삽입
1
|
set serveroutput on;
|
cs |
- 다음 코드를 쿼리문 위에 작성해주어야 출력하고자 하는 내용을 볼 수 있다.
# LOOP문 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
DECLARE
vemp emp%ROWTYPE;
CURSOR cur IS
SELECT * FROM emp;
BEGIN
OPEN cur;
DBMS_OUTPUT.PUT_LINE('====결과====');
LOOP
FETCH cur INTO vemp;
EXIT WHEN cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('사번:'||vemp.empno);
DBMS_OUTPUT.PUT_LINE('이름:'||vemp.ename);
DBMS_OUTPUT.PUT_LINE('직위:'||vemp.job);
DBMS_OUTPUT.PUT_LINE('입사일:'||vemp.hiredate);
DBMS_OUTPUT.PUT_LINE('급여:'||vemp.sal);
END LOOP;
CLOSE cur;
END;
/
|
cs |
# FOR문 사용
1
2
3
4
5
6
7
8
9
10
|
DECLARE
vdept dept%ROWTYPE;
CURSOR cur IS
SELECT * FROM dept;
BEGIN
FOR dept IN cur LOOP
DBMS_OUTPUT.PUT_LINE(vdept.deptno||' '||vdept.dname||' '||vdept.loc);
END LOOP;
END;
/
|
cs |
- LOOP문보다 FOR문을 사용하는게 훨씬 간단한걸 볼 수 있다
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle]PL/SQL- CURSOR/PROCEDURE vs FUNCTION 과 예제 (1) | 2020.11.13 |
---|---|
[Oracle] PL/SQL- Procedure(프로시저)와 예제 (1) | 2020.11.11 |
[Oracle] Oracle 입력 값 받아서 구구단 출력 예제 (0) | 2020.11.10 |
[Oracle] PL/SQL - 제어문 (반복문 / 선택문 / 조건문) 종류와 예제 (0) | 2020.11.10 |
[Oracle] Sub Query(서브쿼리) 종류와 예제(2) (0) | 2020.11.10 |