3.2 오라클 설치 및 수행
Download
Report
Transcript 3.2 오라클 설치 및 수행
ORACLE
오라클 개요, 설치, 환경 설정, SQL*Plus, PL/SQL
목차
I. 오라클 개요
II. 오라클 설치 및 수행
III. 환경 설정
IV. SQL*PLUS와 iSQL* PLUS
V. PL/SQL
2
3. 오라클
• 오라클
– 오라클 사가 개발한 객체 관계 DBMS
– 가장 높은 시장 점유율과 신뢰성을 지닌 데이터베이스 관리 시스
템
– 유닉스, 리눅스, 윈도우 등 대부분의 운영체제를 지원
– PC에서 대형 기종에 이르기까지 다양한 하드웨어와 운영체제 플
랫폼을 지원
– 엔터프라이즈 에디션, 표준 에디션, 개인용 에디션 등 3가지 에디
션으로 공급됨
3
3.1 오라클 개요
• 오라클 개요
– 전자상거래와 데이터 웨어하우징을 위한 고성능의 인터넷 플랫폼
을 제공
– 사용자가 객체 관계 데이터베이스는 물론이고, 워드 프로세서 문
서, 스프레드 시트 문서, 파워포인트로 작성한 발표 자료, XML, 그
래픽스, 비디오 등과 같은 멀티미디어 데이터 타입 등을 관리할 수
있음
– 온라인 트랜잭션 처리(OLTP:Online Transaction Processing), 데
이터 웨어하우스, OLAP(Online Analytical Processing), 전자 상거
래 등 최근에 등장하고 있는 데이터베이스의 중요한 응용 분야에
도 활용할 수 있음
4
3.1 오라클 개요
웹 브라우져
클라이언트
FTP
클라이언트
메일
클라이언트
인터넷 응용
시
스
템
관
리
비즈니스 논리와
데이터
프리젠테이션과
비즈니스 논리
데이터베이스
응용 서버
SQL
개
발
도
구
PL/SQL
JAVA
네트워크 서비스
[그림 3.1] 오라클의 인터넷 플랫폼
5
3.1 오라클 개요
• 오라클 서버와 인스턴스
– 오라클 서버는 한 오라클 인스턴스와 한 오라클 데이터베이스로
구성됨
– 오라클 인스턴스는 백그라운드 프로세스들과 메모리 구조의 조
합
– 사용자가 오라클 서버에 SQL 문을 입력하기 전에 반드시 오라클
인스턴스에 연결되어 있어야 함
– 접속(connection) 사용자 프로세스와 서버 프로세스 간의 통신 경
로
– 세션(session)은 사용자가 오라클 서버로부터 인증될 때부터 시
작하여 사용자가 로그아웃을 하거나 비정상적으로 종료될 때까지
지속
6
3.1 오라클 개요
iSQL*Plus
Pro*C/C++
Pro*COBOL
SQL*Plus
워크시트
응용서버포털
네트워크
오라클 서버
오라클 인스턴스
오라클 데이터베이스
[그림 3.2] 오라클 아키텍쳐
7
3.1 오라클 개요
• 오라클 특징
–
–
–
–
–
–
–
–
–
클라이언트/서버 환경(분산 처리)
다양한 플랫폼
대규모 데이터베이스
다중 동시 데이터베이스 사용자
높은 가용성
산업 표준
높은 보안 관리
자동 데이터베이스 회복 및 자동 에러 정정
XML 등 다양한 데이터 타입 지원
8
3.1 오라클 개요
• 오라클 데이터베이스의 물리적인 저장 구조
– 데이터베이스의 물리적인 구조는 데이터베이스 내의 운영체제 파
일 (데이터파일(datafile))들의 집합
– 각 데이터파일은 운영체제 블록들로 이루어짐
9
3.1 오라클 개요
• 오라클 데이터베이스의 논리적인 저장 구조
– 오라클 데이터베이스는 적어도 하나의 테이블스페이스를 포함
– 테이블스페이스는 데이터파일이라고 부르는 하나 이상의 파일로
구성됨
– 테이블스페이스는 시스템 테이블스페이스, 임시 테이블스페이스,
사용자 테이블스페이스 등으로 구분
– 테이블스페이스는 하나 이상의 세그먼트를 포함
– 세그먼트는 특정한 유형의 데이터 구조를 저장하기 위해 할당되
는 익스텐트들의 집합
– 익스텐트는 오라클 데이터 블록(운영체제의 데이터 블록이 아님)
들로 이루어짐
– 오라클 데이터 블록은 읽기와 쓰기 연산의 가장 작은 단위
– 데이터파일 내의 데이터를 오라클 데이터 블록들로 관리
10
3.1 오라클 개요
데이터베이스
테이블스페이스
데이터파일
물리적
저장구조
새그먼트
익스텐트
오라클
데이터 블록
운영체제 블록
[그림 3.3] 논리적 저장구조와 물리적 저장구조
11
목차
I. 오라클 개요
II. 오라클 설치 및 수행
III. 환경 설정
IV. SQL*PLUS와 iSQL* PLUS
V. PL/SQL
12
3.2 오라클 설치 및 수행
• 오라클9i 개인용 에디션을 컴퓨터 시스템에 설치
– 오라클 개인용 에디션은 윈도우2000, 윈도우NT, 윈도우XP 위에
설치 가능
– 본 절에서는 윈도우2000 환경에 오라클 개인용 에디션을 설치하
는 과정을 설명
– 윈도우 2000에 오라클을 설치하려면 윈도우2000의 서비스 팩1
이상이 설치되어 있어야 함
– 오라클 홈페이지(http://otn.oracle.com)에 접속하여 오라클을 다
운로드하는 웹페이지를 찾음
– 오라클 사이트에 회원으로 가입한 사람만 다운로드할 수 있음
13
3.2 오라클 설치 및 수행
[그림 3.4] 오라클을 다운로드할 수 있는 웹페이지
14
3.2 오라클 설치 및 수행
• 오라클 라이센스 동의 화면
[그림 3.5] 오라클을 라이센스 동의화면
15
3.2 오라클 설치 및 수행
• 오라클 zip 파일을 모두 다운로드
[그림 3.7] 오라클을 압축파일
16
3.2 오라클 설치 및 수행
• zip 파일을 알집, 윈집 등의 압축 유틸리티를 사용하여 압
축을 풀고 92010NT_Disk1 폴더에서 setup.exe를 더블 클
릭하여 실행
[그림 3.8] 파일의 압축을 푼 상태
17
3.2 오라클 설치 및 수행
[그림 3.9] 90110NT_Disk1폴더의 setup.exe
18
3.2 오라클 설치 및 수행
• Oracle Universal Installer(OUI)
– OUI는 오라클 제품의 설치 및 구성 과정을 안내
– 오라클의 구성요소들을 설치하고, 업그레이드하고, 제거하고, 데
이터베이스를 생성하는데 사용됨
– 오라클 8i부터 모든 플랫폼에서 사용 가능한 자바 기반의 GUI 형
식의 프로그램으로 만들어짐
19
3.2 오라클 설치 및 수행
[그림 3.10] OUI 초기 설치 화면
20
3.2 오라클 설치 및 수행
• 파일 위치 대화상자
– 오라클을 설치하려는 오라클 홈(ORACLE_HOME)과 폴더에 대한
적절한 이름과 경로를 입력
– 소스의 [경로]에는 products.jar의 전체 경로를 입력
– 대상의 [이름]에는 오라클 홈의 이름을 입력하거나 드롭다운 목록
에서 선택
– 경로에는 오라클 홈의 전체 경로를 입력하거나 드롭다운 목록에
서 선택
21
3.2 오라클 설치 및 수행
[그림 3.11] 파일 위치 대화상자
22
3.2 오라클 설치 및 수행
• 사용 가능한 제품 대화상자
– [Oracle9i Database 9.2.0.1.0]을 선택
– 제품 언어를 누르고, 오라클을 시행할 때 사용하는 언어로 ‘한국어,
영어’를 선택
23
3.2 오라클 설치 및 수행
[그림 3.13] 언어 선택 대화상자
[그림 3.12] 사용 가능한 제품 대화상자
24
3.2 오라클 설치 및 수행
• 설치 유형 제품 대화상자
– 설치 목적에 따라 설치 유형을 선택
– 개인용 에디션은 엔터프라이즈 에디션과 완벽하게 호환되는 단
일 사용자용 오라클
– 주로 개발자들이 엔터프라이즈 에디션이나 표준 에디션에서 운영
할 응용들을 개발하기 위해서 개인용 에디션을 사용
25
3.2 오라클 설치 및 수행
[그림 3.14] 설치 유형 대화상자
26
3.2 오라클 설치 및 수행
• 데이터베이스 구성 대화상자
– 사용자가 필요로 하는 데이터베이스 구성을 선택
– [일반적인 목적]을 선택하면 단순 트랜잭션에서 복합 질의까지 다
양한 사용 범위에 적합한 사전 구성 데이터베이스를 설치
– [트랜잭션 프로세싱]을 선택하면 단순한 트랜잭션들을 실행하는
많은 수의 동시 사용자에게 적합한 사전 구성 데이터베이스를 설
치
– [데이터 웨어하우스]는 복합 질의에 적합한 사전 구성 데이터베이
스를 설치
– [사용자 정의]는 사용자가 원하는 조합을 선택
27
3.2 오라클 설치 및 수행
[그림 3.15] 데이터베이스 구성 대화상자
28
3.2 오라클 설치 및 수행
• Oracle Services for Microsoft Transaction Server 대화상
자
– 포트 번호를 확인하고 [다음]을 클릭
– Oracle MTS Recovery Service는 자동적으로 Oracle Services for
Microsoft Transaction Server에 설치됨
29
3.2 오라클 설치 및 수행
[그림 3.16] Oracle Service for Microsoft Transaction Server 대화상자
30
3.2 오라클 설치 및 수행
• 데이터베이스 식별 대화상자
– 전역 데이터베이스 이름을 입력
– 전역 데이터베이스 이름을 입력하면 자동적으로 SID(시스템 식별
자)에도 입력됨
– 전역 데이터베이스 이름은 네트워크 도메인 안에서 서로 다른 데
이터베이스를 고유하게 식별할 수 있는 데이터베이스의 완전한
이름
– SID는 로컬 컴퓨터의 다른 데이터베이스와 이 데이터베이스를 고
유하게 식별하는 데이터베이스 이름
– 전역 데이터베이스 이름의 형식
• 데이터베이스_이름.데이터베이스_도메인
31
3.2 오라클 설치 및 수행
[그림 3.17] 데이터베이스 식별 대화상자
32
3.2 오라클 설치 및 수행
• 데이터베이스 파일 위치 대화상자
– 데이터베이스 파일을 설치할 위치를 지정
– 오라클은 오라클 홈이 설치된 디스크와 다른 디스크에 데이터베
이스 파일을 설치할 것을 권장
– 개인용 에디션에서 간단한 데이터베이스를 생성하고 실습할 예정
이므로 오라클 홈이 설치된 디스크와 동일한 디스크에 데이터베
이스 파일을 설치해도 무방
33
3.2 오라클 설치 및 수행
[그림 3.18] 데이터베이스 파일 위치 대화상자
34
3.2 오라클 설치 및 수행
• 데이터베이스 문자 집합 대화상자
– [기본 문자 집합 사용]을 선택
[그림 3.19] 데이터베이스 문자 집합 대화상자
35
3.2 오라클 설치 및 수행
• 설치할 정보를 요약한 창
[그림 3.20] 설치 요약 창
36
3.2 오라클 설치 및 수행
• 설치 화면
– 진행 표시줄에 각 구성요소별로 설치가 진행되는 상태가 표시됨
– 가장 오랜 시간이 걸림
– 중간에 디스크 2와 디스크 3의 위치를 지정하는 창이 각각 1번 나
타남
37
3.2 오라클 설치 및 수행
[그림 3.19] 데이터베이스 문자 집합 대화상자
38
3.2 오라클 설치 및 수행
[그림 3.22] 디스크 2의 위치 지정
[그림 3.23] 디스크 3의 위치 지정
39
3.2 오라클 설치 및 수행
• 구성 툴 대화상자
– 실행할 수 있는 선택적 도구들의 이름과 상태가 표시됨
– 각 도구에 대해 성공, 실패, 대기 등의 상태가 나타남
– 모든 도구가 성공적으로 실행되면 OUI에서 자동으로 다음 화면으
로 넘어감
40
3.2 오라클 설치 및 수행
[그림 3.24] 구성 툴 대화상자
41
3.2 오라클 설치 및 수행
• 데이터베이스 생성 화면
– 그림 3.17에서 명시한 DDOJADB라는 이름의 데이터베이스가 생
성됨
[그림 3.25] DBCA 화면
42
3.2 오라클 설치 및 수행
• DBCA 암호 변경 화면
– 데이터베이스 생성 과정에 SYS와 SYSTEM 계정이 자동적으로
만들어짐
– 이 두 계정은 데이터베이스 관리자 역할
– SYS의 초기 암호는 change_on_install이고, 데이터 사전의 소유
자
– SYSTEM의 초기 암호는 manager이고, 오라클 도구들이 사용하
는 내부 테이블과 뷰들의 소유자
– 실습에 사용할 새 암호로 dbadmin을 입력
43
3.2 오라클 설치 및 수행
[그림 3.26] DBCA 암호 변경 화면
44
3.2 오라클 설치 및 수행
• 암호 관리 화면
– 사용자에 대한 초기 암호를 변경할 수 있음
– 보안상의 이유로 SYS, SYSTEM, SCOTT, DBNSMP를 제외한 모
든 사용자가 잠겨 있음
– SCOTT도 오라클에서 데이터베이스를 생성할 때 자동적으로 만
드는 사용자 계정. 초기 암호는 tiger
45
3.2 오라클 설치 및 수행
[그림 3.27] 암호 관리 화면
46
3.2 오라클 설치 및 수행
• 설치 완료 대화상자
[그림 3.28] 설치 완료 대화상자
47
3.2 오라클 설치 및 수행
• 오라클 엔터프라이즈 관리자 콘솔 창
– 하나 이상의 데이터베이스를 관리하고, 모니터하고, 튜닝하는데
사용되는 그래픽 인터페이스
– 데이터베이스 관리자를 위한 중앙집중식 시스템 관리 도구
[그림 3.29] 오라클 엔터프라이즈 관리자 콘솔
48
3.2 오라클 설치 및 수행
• 오라클이 윈도우2000의 서비스로 등록되어 있는지 확인
– [시작] → [설정] →[제어판] → [관리도구] → [구성 요소 서비스]를
실행하고, 그림 3.30의 [구성 요소 서비스] 창의 왼쪽 영역에서
[서비스]를 선택하면 컴퓨터에서 실행되는 서비스를 확인할 수 있
음
– 오라클 설치 과정에서 오라클 데이터베이스 SID를 ‘DDOJADB’로
설정한 경우에 윈도우2000의 서비스 이름은
‘OracleServiceDDOJADB’
49
3.2 오라클 설치 및 수행
[그림 3.30] 구성 요소 서비스
50
3.2 오라클 설치 및 수행
• 오라클 관련 프로그램
[그림 3.31] 오라클과 관련된 프로그램
51
3.2 오라클 설치 및 수행
• 오라클 관련 폴더
– 오라클을 설치할 때 입력한 SID 값을 갖는 폴더인 ddojaDB가
C:\oracle\oradata 폴더 아래에 있음
– 이 폴더에 데이터베이스 관련 파일들이 저장되어 있음
– INDX01.DBF에는 USERS 테이블스페이스에 저장된 데이터와
관련된 인덱스들이 저장됨
– TEMP01.DBF에는 SQL문을 처리하는 과정에 생성되는 임시 테
이블과 인덱스들이 저장됨
– SYSTEM01.DBF에는 데이터 사전이 저장됨
– USERS01.DBF에는 사용자가 생성한 테이블들이 저장됨
52
3.2 오라클 설치 및 수행
[그림 3.32] 데이터베이스 관련 파일이 저장되는 폴더
53
목차
I. 오라클 개요
II. 오라클 설치 및 수행
III. 환경 설정
IV. SQL*PLUS와 iSQL* PLUS
V. PL/SQL
54
3.3 환경 설정
•
사용자 등록
– 두 명의 데이터베이스 사용자(KIM과 LEE)를 등록
– [시작] → [프로그램] → [Oracle - Ora92] → [Application
Development] → [SQLPlus Worksheet]를 선택
– 기본 관리 작업을 수행하려는 경우에는 [데이터베이스에 직접 접
속]을 선택
– [사용자 이름]에 ‘system’ 을 입력하고, [암호]에 설치 과정 중에 변
경한 새로운 암호인 ‘dbadmin’을 입력하고, [다음으로 접속]에서
‘SYSDBA’를 선택
55
3.3 환경 설정
[그림 3.33] 로그인 대화상자
56
3.3 환경 설정
• SQL*Plus 워크시트 창
– SQL*Plus 워크시트에서 SQL문이나 PL/SQL문을 입력하고, 편집
하고, 실행할 수 있음
– SQL*Plus 워크시트에서 클라이언트의 스크립트를 실행할 수도
있음
– SQL*Plus 워크시트는 실행한 명령에 대한 기록을 유지하므로 이
전에 실행한 명령을 쉽게 읽어 들여 다시 실행할 수 있음
57
3.3 환경 설정
입력창
도구모음
출력창
[그림 3.34] SQL*Plus 워크시트
58
3.3 환경 설정
•
실습 예제(userCreate.sql)
[그림 3.35] 실습 예제파일(userCreate.sql) 열기
59
3.3 환경 설정
[그림 3.36] 실습 예제파일(userCreate.sql)의 내용
60
3.3 환경 설정
• CREATE USER
– 데이터베이스 관리자는 CREATE USER문을 사용하여 사용자를
등록하고 암호를 초기화
– KIM은 사용자의 계정이고, kim은 이 사용자의 초기 암호
– 디폴트 사용자 테이블스페이스는 users이고, 임시 테이블스페이
스는 temp
– users와 temp 테이블스페이스에 디스크 쿼터를 무제한으로 할당
• GRANT
– 데이터베이스 관리자는 KIM에게 connect와 resource 역할을 허
가
61
3.3 환경 설정
•
입력 창에 들어 있는 명령 실행
– [워크시트] → [실행] 또는 F5 또는 도구 모음에서
를 클릭
[그림 3.37] 입력창의 명령 실행
62
3.3 환경 설정
•
암호 변경
– 데이터베이스 관리자가 사용자의 암호를 변경하거나 사용자가 자
신의 암호를 직접 변경할 수 있음
– 데이터베이스 관리자(system)로 로그인을 한 상태에서 다음 명령
을 사용하여 암호를 변경할 수 있음
• ALTER USER KIM identified by bluesky;
63
3.3 환경 설정
[그림 3.38] 암호 변경
64
3.3 환경 설정
•
암호 변경(계속)
– 일반 사용자로 로그인을 한 상태에서 password 명령을 사용하여
암호를 변경할 수도 있음
– [시작] → [프로그램] → [Oracle - Ora92] → [Application
Development] → [SQL Plus]를 선택
[그림 3.39] SQL*Plus의 로그온 대화상장
65
3.3 환경 설정
프
롬
프
트
[그림 3.40] SQL*Plus 창
66
3.3 환경 설정
•
예제 테이블 생성
– DBSERVER 데이터베이스에 4장에서 SQL 실습에 사용할
EMPLOYEE와 DEPARTMENT 테이블을 생성하고, 튜플들을 삽
입
– SQL*Plus 워크시트에서 [파일] → [데이터베이스 접속 변경]이나
–
를 선택
[그림 3.41] 데이터베이스 접속 정보 창
67
3.3 환경 설정
•
실습 예제(sampledata.sql )
[그림 3.42] 실습 예제파일(sampledata.sql)의 내용
68
3.3 환경 설정
•
정의한 테이블과 뷰가 데이터베이스에 생성되었는가를
확인
– 입력 창에 다음 명령을 입력하여 실행
• SELECT * FROM tab;
– tab은 데이터베이스 내의 테이블에 관한 정보를 나타내는 데이터
사전 뷰
– TNAME은 테이블의 이름을 나타내고, TABTYPE은 테이블의 유
형, 즉 테이블 또는 뷰를 나타냄
69
3.3 환경 설정
[그림 3.43] 생성된 테이블과 뷰
70
3.3 환경 설정
•
DEPARTMENT 테이블의 구조 확인
– 입력 창에 다음 명령을 입력하여 실행
• DESCRIBE DEPARTMENT;
또는
• DESC DEPARTMENT;
– 이름은 DEPARTMENT 테이블에 속한 애트리뷰트들을 나타내고,
널?은 애트리뷰트가 널값을 허용하는가를 나타내며, 유형은 애트
리뷰트의 데이터 타입과 길이를 의미
71
3.3 환경 설정
[그림 3.44] 테이블 구조
72
3.3 환경 설정
•
DEPARTMENT 테이블의 내용 확인
– 입력 창에 다음 명령을 입력하여 실행
• SELECT * FROM DEPARTMENT;
[그림 3.45] DEPARTMENT 테이블의 내용
73
3.3 환경 설정
•
PROJECT 테이블을 생성
– 입력 창에 다음 명령을 입력하여 실행
CREATE
TABLE
(
Projno
Projname
Budget
);
PROJECT
NUMBER
CHAR(15)
NUMBER
NOT
NOT
NULL
NULL
74
3.3 환경 설정
[그림 3.46] PROJECT 테이블 생성
75
3.3 환경 설정
•
PROJECT 테이블을 생성
– 입력 창에 다음 명령을 입력하여 실행
ALTER TABLE PROJECT
ADD Manager NUMBER;
– 방금 추가한 Manager 애트리뷰트를 삭제하기 위해서는 아래와
같은 명령을 실행
ALTER TABLE PROJECT DROP COLUMN Manager;
76
3.3 환경 설정
[그림 3.47] PROJECT 테이블에 애트리뷰트 추가
77
목차
I. 오라클 개요
II. 오라클 설치 및 수행
III. 환경 설정
IV. SQL*PLUS와 iSQL* PLUS
V. PL/SQL
78
3.4 SQL*Plus와 i SQL*Plus
•
SQL*Plus
– 데이터베이스를 대화식으로 접근하기 위해 사용되는 오라클의 도
구
– SQL*Plus는 SQL문과 PL/SQL문을 수행하며 자체 명령을 포함
– 데이터베이스를 기동하거나 종료시키고, 질의를 작성해서 수행하
고, 데이터를 삽입하고, 데이터를 갱신하고, 원하는 형식의 보고서
를 작성
– 또한 SQL문을 수정하기 위한 행 편집기를 제공하며, 환경 설정을
제어하고, 로컬 및 원격 데이터베이스를 접근
– SQL문을 실행하려면 마지막 절의 끝에 세미콜론(;)을 입력하고
엔터 키를 누름
– SQL은 데이터베이스를 접근하는데 사용되는 언어이고,
SQL*Plus는 SQL문과 PL/SQL문을 수행하는 환경(도구)
79
3.4 SQL*Plus와 i SQL*Plus
SQL문
서버
SQL*PLUS
질의결과
버퍼
SQL
스크립트
테이블
[그림 3.48] SQL*Plus와 SQL의 상호 작용
80
3.4 SQL*Plus와 i SQL*Plus
•
i SQL*Plus
– 웹브라우저(Internet Explorer 또는 Netscape Navigator)에서 데이
터베이스를 접근하는 오라클 도구
– SQL*Plus와 유사한 기능
– http://localhost/isqlplus 로 접속하면 됩니다.
81
목차
I. 오라클 개요
II. 오라클 설치 및 수행
III. 환경 설정
IV. SQL*PLUS와 iSQL* PLUS
V. PL/SQL
82
3.5 PL/SQL
•
PL/SQL(Procedural Language/SQL)
– PL/SQL은 오라클에서 관계 데이터베이스를 위한 표준 데이터 언
어인 SQL에 절차적인 언어의 기능(예를 들어, IF-THEN, WHILE
루프 등)을 추가하여 확장한 언어
– 블록 위주의 언어
– 기본적인 단위는 블록, 프로시저, 함수
83
3.5 PL/SQL
• 기본적인 PL/SQL 블록 구조
세 개의 섹션으로 구성됨
begin으로 시작하는 실행절만 필수이고 나머지는 옵션
선언절에서는 변수와 객체들을 선언
실행절에서는 변수들을 처리(조작)
예외 사항 처리절에서는 실행 중에 발생한 예외나 에러를 처리
END 및 다른 PL/SQL문에는 문장 끝을 표시하기 위해 세미콜론
을 써야 함
– 주석은 여러 행에 걸쳐 쓰려면 /* 과 */ 사이에 입력하고, 한 행에
쓰는 주석은 시작 부분에 --을 표시
–
–
–
–
–
–
84
3.5 PL/SQL
• 기본적인 PL/SQL 블록 구조(계속)
[DECLARE
-- 선언절
<상수>
<변수>
<커서>
<사용자가 정의하는 예외 사항>]
BEGIN
-- 실행절(필수)
<SQL문 또는 PL/SQL문>
[<EXCEPTION>
-- 예외 사항 처리(옵션)
<예외 사항 처리>]
END;
85
3.5 PL/SQL
• PL/SQL의 제어 구조
– 조건문의 예
if <조건> then <PL/SQL문> else <PL/SQL문> end if;
– for 반복문의 예
for <인덱스 변수> in <범위> loop <PL/SQL문> end loop;
– while 반복문의 예
while <조건> loop
<PL/SQL문>
end loop;
86
3.5 PL/SQL
•
커서(cursor)
– 질의가 다수의 행들을 결과로 반환할 때 커서를 선언해서 질의의
결과의 각 행을 처리하고, 현재 어떤 행을 처리하고 있는지 유지해
야함
– 질의의 결과로 반환되는 행들은 활성 집합(active set)이라고 부르
는 영역에 저장됨
– 커서가 가리키는 행이 현재 행
활성 집합
커서
송치윤
52015
사당동
컴퓨터
3.3
김구완
53116
홍제동
정보통신
3.1
최재석
56034
양재동
정보관리
3.5
송혜영
52042
신정동
컴퓨터
2.9
조미림
53108
역삼동
정보통신
3.4
현재형
[그림 3.49] 명시적 커서의 예
87
3.5 PL/SQL
• 커서를 사용하기 위해 필요한 네 단계
– 블록의 선언절에서 커서를 선언
• CURSOR 커서_이름 IS SELECT문;
– 커서를 사용하기 전에 실행절에서 커서를 연다
• OPEN 커서_이름;
– 활성 집합에 있는 행을 한 번에 하나씩 차례대로 검색
• FETCH 커서_이름 INTO 변수_리스트;
– 질의 수행 결과에 대한 처리를 마치기 위해 커서를 닫음
• CLOSE 커서_이름;
88
3.5 PL/SQL
• 갱신할 투플들에 대한 커서 정의
– 커서 선언부에 FOR UPDATE OF절을 포함시키고, 수정할 애트
리뷰트들을 함께 명시
– 예: 아래와 같이 커서를 선언하면 EMPLOYEE 테이블의 TITLE 애
트리뷰트를 수정할 수 있음
EXEC SQL
DECLARE title_cursor CURSOR FOR
SELECT title FROM employee FOR UPDATE OF title;
– 이제 커서를 열면 투플의 애트리뷰트들을 수정할 수 있음
UPDATE
SET
WHERE
employee
title = :newtitle
CURRENT OF title_cursor;
89
3.5 PL/SQL
• PL/SQL의 예
– IF문과 FOR 반복문을 포함한 질의의 예
– 다음 PL/SQL코드는 3번 부서의 사원들의 평균 급여가 2800000
원 이상이면 3번 부서에 속한 사원들의 이름과 직책과 급여를 검
색하고, 그렇지 않으면 “3번 부서의 평균 급여가 2800000 미만입
니다.”라는 메시지를 인쇄(교재 Page137-138)
– dbms_output.put_line은 값을 화면에 출력하는 오라클의 프로시
저
90