Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Python
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- 리액트
- node.js 설치
- intellij
- vs code 내 node
- 거북이 대포 게임
- Concurrently
- 노드에 리액트 추가하기
- Spring-Framework
- 모던자바스크립트
- DB Browser
- 타자 게임 만들기
- JS 개념
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- Colaboratory 글자 깨짐
- 모두의 파이썬
- react
- 따라하며 배우는 노드 리액트 기본 강의
- node.js로 로그인하기
- 웹 게임을 만들며 배우는 리액트
- 인프런
- Do it 자바스크립트 + 제이쿼리 입문
- 계산맞추기 게임
- props
- 자바스크립트
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- react오류
- spring-boot
- googleColaboratory
Archives
- Today
- Total
프로그래밍 삽질 중
SQL 커서 설명 및 예제 본문
※ 커서(중요 ★)
- 조회 때 나오는 결과 set, 결과 값이 여러 개일 때 효율적
- 실행 결과 테이블을 한번에 한 행씩 처리하기 위해
테이블 행을 순서대로 가리키는 데 사용
- CURSOR<CURSOR 이름> IS <CURSOR정의> : 커서 생성
- OPEN <CURSOR 이름> : 커서 사용 시작
- FETCH <CURSOR 이름> INTO <변수> : 행 데이터를 가져옴, 커서에서 원하는 결과 추출
- CLOSE <CURSOR 이름> : 커서 사용 종료
[예제 1] - 커서(원하는 값 추출) 1개 값만 추출
결과 값 : 한여진 경찰
[예제 1 답]
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
32
33
34
35
|
--JOB 테이블 생성
CREATE TABLE JOB ( EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(10),
DEPTNO NUMBER(2)
);
INSERT INTO JOB (EMPNO, ENAME, JOB, DEPTNO)
VALUES(001, '한여진', '경찰', 24);
INSERT INTO JOB (EMPNO, ENAME, JOB, DEPTNO)
VALUES(002, '황시목', '검사', 37);
INSERT INTO JOB (EMPNO, ENAME, JOB, DEPTNO)
VALUES(003, '강원철', '검사', 50);
INSERT INTO JOB (EMPNO, ENAME, JOB, DEPTNO)
VALUES(004, '장건', '경찰', 22);
INSERT INTO JOB (EMPNO, ENAME, JOB, DEPTNO)
VALUES(005, '이연재', 'CEO', 80);
SELECT * FROM JOB;
-- 커서 생성
DECLARE --변수 선언 및 커서 선언
V_ENAME VARCHAR2(50);
V_JOB VARCHAR2(50);
CURSOR CUR_JOB IS SELECT ENAME, JOB FROM JOB; --이름과 직업 선택
BEGIN -- 커서 오픈
OPEN CUR_JOB;
FETCH CUR_JOB INTO V_ENAME, V_JOB; -- 커서에서 원하는 값 추출
DBMS_OUTPUT.PUT_LINE(V_ENAME || V_JOB);
CLOSE CUR_JOB; -- 커서 닫기
END;
|
cs |
[예제 2] - 커서(원하는 값 추출) 모두 다 출력
결과값 :
한여진경찰
황시목검사
강원철검사
장건경찰
이연재CEO
[예제 2 답]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
DECLARE
V_ENAME VARCHAR2(50);
V_JOB VARCHAR2(50);
CURSOR CUR_JOB IS SELECT ENAME, JOB FROM JOB;
BEGIN
OPEN CUR_JOB;
LOOP --루프 시작
FETCH CUR_JOB INTO V_ENAME, V_JOB; -- FETCH 시작, 커서에서 값 가져옴
IF CUR_JOB%NOTFOUND THEN -- 커서의 상태 확인
EXIT; --더이상 변수에 할당할 레코드가 없으면 빠져 나감
END IF;
DBMS_OUTPUT.PUT_LINE(V_ENAME || V_JOB);
END LOOP; --LOOP 종료
CLOSE CUR_JOB; --커서 닫기
END;
|
cs |
'과거 프로그래밍 자료들 > SQL(Oracle)' 카테고리의 다른 글
JDBC 설명 및 예시 2) (0) | 2021.03.26 |
---|---|
JDBC 설명 및 예제 1) (0) | 2021.03.25 |
SQL PL/SQL 설명 및 예제 (0) | 2021.03.23 |
SQL 트랜잭션, 세션, 사용자 관리 설명 및 예제 (0) | 2021.03.23 |
SQL 객체종류(인덱스, 뷰, 시퀀스 등) 설명 및 예제 (0) | 2021.03.23 |