개발자를 위한 PL/SQL 프로그래밍
2022년 12월 09일 출간
국내도서 : 2017년 06월 30일 출간
- eBook 상품 정보
- 파일 정보 pdf (39.48MB)
- ISBN 9791192469669
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
판매가 0원
이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
CHAPTER 1 예제로 시작하기 3
1.1 오라클 scott 예제 스키마 3
1.2 예제 프로그램 6
1.2.1 익명 PL/SQL 예제 6
1.2.2 저장 함수 예제 12
1.2.3 저장 프로시저 예제 15
CHAPTER 2 PL/SQL 개요 20
2.1 PL/SQL의 개념 21
2.2 PL/SQL의 주요 특징 22
2.3 PL/SQL과 SQL의 비교 25
2.4 PL/SQL로 쉽게 할 수 있는 것들과 하기 어려운 것들 27
2.4.1 쉽게 할 수 있는 것들 27
2.4.2 하기 어려운 것들 28
2.5 PL/SQL의 작성과 실행 절차 28
2.6 PL/SQL의 실행 구조 29
CHAPTER 3 PL/SQL 프로그래밍 준비하기 31
3.1 오라클의 세 가지 에디션 31
3.2 오라클 데이터베이스 설치 32
3.2.1 사용할 오라클 버전의 선택 32
3.2.2 오라클 데이터베이스 설치 절차 32
3.2.3 오라클 버전 12c 사용 시의 주의사항 34
3.3 PL/SQL 실행 환경 36
3.4 SQL*Plus 설정 38
PART II PL/SQL의 기초 39
CHAPTER 4 PL/SQL 프로그램의 기본 구조 41
4.1 블록 구조 41
4.2 문장 44
4.3 주석 45
4.4 저장 서브프로그램과 익명 PL/SQL 46
CHAPTER 5 구분자와 식별자 48
5.1 구분자 48
5.2 식별자 50
5.2.1 일반 사용자 정의 식별자 53
5.2.2 큰따옴표를 사용한 사용자 정의 식별자 54
5.3 식별자의 유효 범위 55
CHAPTER 6 데이터 타입 59
6.1 문자형 데이터 타입 60
6.2 수치형 SQL 데이터 타입 63
6.3 LONG과 LONG RAW 데이터 타입 65
6.4 PL/SQL 전용 데이터 타입 65
6.4.1 PL/SQL 전용 수치형 데이터 타입 65
6.4.2 BOOLEAN 데이터 타입 66
6.5 사용자 정의 서브타입 69
6.6 객체 타입 70
6.7 오라클 내장 데이터 타입의 최대 크기 차이 70
6.8 앵커(%)를 사용한 데이터 타입 지정 71
6.8.1 %TYPE 71
6.8.2 %ROWTYPE 72
6.9 스칼라 데이터 타입과 컴포지트 데이터 타입 73
CHAPTER 7 변수와 상수 그리고 리터럴 75
7.1 변수 75
7.2 상수 78
7.3 리터럴 79
7.3.1 문자형 리터럴 81
7.3.2 수치형 리터럴 84
7.3.3 날짜형 리터럴 86
CHAPTER 8 표현식 89
8.1 연산자와 피연산자 89
8.2 연산자 우선순위 90
8.3 연산자의 기능 설명 91
8.4 연산자의 종류 91
8.4.1 산술 연산자 92
8.4.2 논리 연산자 92
8.4.3 Short-Circuit Evaluation 94
8.4.4 연결 연산자 95
8.4.5 비교 연산자 95
8.4.6 BOOLEAN 표현식 101
8.4.7 CASE 표현식 102
8.5 PL/SQL에서 내장 SQL 함수의 사용 105
CHAPTER 9 SQL 실행 107
9.1 SELECT문의 사용 107
9.1.1 기본 사용법 107
9.1.2 PL/SQL 입력 변수의 사용 108
9.2 INSERT문의 사용 111
9.3 UPDATE문의 사용 113
9.4 MERGE문의 사용 115
9.5 DELETE문의 사용 117
9.6 시퀀스 사용 117
9.7 DML문의 결괏값을 PL/SQL 변수로 반환하는 방법 118
9.8 트랜잭션 제어 120
9.8.1 COMMIT 121
9.8.2 묵시적 COMMIT 122
9.8.3 ROLLBACK 123
9.8.4 SAVEPOINT 124
9.8.5 묵시적 ROLLBACK 126
9.8.6 SET TRANSACTION 128
9.9 CLOB 사용하기 129
PART III 절차형 데이터베이스 언어로서의 PL/SQL 133
CHAPTER 10 제어문 135
10.1 제어문의 종류 135
10.2 조건 분기문 136
10.2.1 IF문 136
10.2.2 CASE문 138
10.3 무조건 분기문 144
10.4 레이블 146
10.5 순환문 149
10.5.1 기본 LOOP문 149
10.5.2 탈출문 150
10.5.3 WHILE LOOP문 151
10.5.4 FOR LOOP문 152
10.5.5 LOOP문 내에서의 흐름 변경 156
10.6 제어 구조의 중첩 157
CHAPTER 11 컬렉션 160
11.1 컬렉션 타입의 종류 161
11.2 Associative Array 163
11.3 VARRAY(Variable-Size Array) 167
11.4 Nested Table 170
11.5 컬렉션 생성자 174
11.6 컬렉션 연산 175
11.6.1 컬렉션 변수 간의 할당 175
11.6.2 컬렉션 비교 177
11.6.3 컬렉션 메소드 178
11.7 다차원 컬렉션 180
11.8 배열 처리 180
11.8.1 SELECT문에서의 배열 처리 181
11.8.2 DML문에서의 배열 처리 185
11.8.3 FORALL문과 예외 처리 188
CHAPTER 12 레코드 191
12.1 레코드 사용 191
12.2 레코드를 SQL에 사용하기 193
12.3 레코드 변수에 값 할당 197
12.4 레코드와 컬렉션의 혼합 199
12.5 레코드를 SELECT, INSERT, UPDATE문에 사용할 때의 제약 사항 200
CHAPTER 13 커서 201
13.1 묵시적 커서와 명시적 커서 202
13.1.1 묵시적 커서 203
13.1.2 명시적 커서 203
13.2 커서 FOR LOOP 208
13.2.1 묵시적 커서 FOR LOOP 209
13.2.2 명시적 커서 FOR LOOP 211
13.3 커서 속성 211
13.3.1 명시적 커서 속성 212
13.3.2 묵시적 커서 속성 214
13.4 커서 칼럼의 앨리어스 사용 215
13.5 커서 매개변수 216
13.6 커서 변수(REF CURSOR) 217
13.7 SELECT FOR UPDATE 222
CHAPTER 14 동적 SQL 225
14.1 EXECUTE IMMEDIATE문을 사용하는 방법 227
14.1.1 쿼리 결과를 변수에 저장 228
14.1.2 바인드 변수의 사용 228
14.1.3 바인드 변수의 모드 229
14.1.4 바인드 변수 플레이스 홀더의 이름과 순서 230
14.2 커서 변수를 사용하는 방법 232
14.3 DBMS_SQL 내장 패키지를 사용하는 방법 233
14.4 동적 PL/SQL 238
CHAPTER 15 예외 처리 240
15.1 예외 처리 방법 240
15.2 예외의 이름 243
15.2.1 표준 예외명 243
15.2.2 사용자 정의 예외명 250
15.3 사용자가 예외를 발생시키기 251
15.3.1 RAISE문 사용 251
15.3.2 RAISE_APPLICATION_ERROR 252
15.4 예외를 특정 오류 번호와 연결하기 255
15.5 예외의 전파 256
15.6 예외 처리기에서의 오류 조회 함수 257
15.6.1 FORMAT_ERROR_BACKTRACE 258
15.6.2 FORMAT_ERROR_STACK 258
15.6.3 FORMAT_CALL_STACK 259
15.7 예외 처리에서 주로 하는 작업 261
15.7.1 트랜잭션 마무리 261
15.7.2 변수나 반환값 지정 262
15.7.3 디버깅 정보 출력 263
15.7.4 오류 무시 265
PART IV 저장 서브프로그램 267
CHAPTER 16 저장 서브프로그램 개요 269
16.1 저장 서브프로그램을 사용하는 이유 269
16.2 저장 서브프로그램의 종류 270
16.3 프로그램을 서버에 저장하고 공유하기 271
16.4 저장 서브프로그램의 컴파일과 실행 방법 272
16.4.1 컴파일하기 273
16.4.2 컴파일 오류 조회 274
16.4.3 저장 서브프로그램 실행하기 276
16.5 서버에 저장되지 않는 서브프로그램 279
CHAPTER 17 저장 함수 282
17.1 함수의 기본 구조 282
17.2 함수의 매개변수 284
17.3 함수의 선언부 285
17.4 함수의 반환값 286
17.5 저장 함수의 사용 289
17.6 저장 함수 사용의 제약 사항 289
CHAPTER 18 저장 프로시저 291
18.1 프로시저의 매개변수 293
18.2 프로시저의 선언부 293
18.3 저장 프로시저의 사용 293
CHAPTER 19 패키지 294
19.1 패키지 구조 294
19.2 패키지 변수 298
19.3 패키지 서브프로그램 304
19.4 패키지 커서 306
19.5 SERIALLY_REUSABLE 패키지 308
CHAPTER 20 서브프로그램의 다양한 기능들 311
20.1 매개변수 311
20.1.1 매개변수의 선언과 사용 311
20.1.2 IN/OUT 매개변수 312
20.1.3 매개변수의 기본값 314
20.1.4 매개변수의 값 지정 방법: 위치에 의한 지정과 이름에 의한 지정 315
20.1.5 OUT 매개변수 변경의 원자성 보장 316
20.1.6 매개변수의 전달 방식: 값에 의한 호출과 참조에 의한 호출 318
20.1.7 NOCOPY 매개변수 319
20.2 재귀 호출 321
20.3 서브프로그램 정의의 중첩 321
20.4 중복 정의 323
20.4.1 중복 정의의 사용 323
20.4.2 중복 정의의 제약 327
20.5 전방 선언 328
20.6 자치 트랜잭션 329
20.7 함수 속성 DETERMINISTIC, PARALLEL_ENABLE, RESULT_CACHE 332
20.7.1 DETERMINISTIC 333
20.7.2 PARALLEL_ENABLE 333
20.7.3 RESULT_CACHE 334
20.8 권한 모델: 정의자 권한과 실행자 권한 334
20.8.1 정의자 권한 337
20.8.2 실행자 권한 338
20.8.3 ROLE을 통해 부여 받은 권한: SQL은 실행되는데 서브프로그램에 포함시키면 오류 발생 340
CHAPTER 21 트리거 344
21.1 트리거의 종류 345
21.2 DML 트리거의 구조 346
21.3 트리거의 호출 순서 349
21.4 트리거의 제약 사항 350
CHAPTER 22 객체 타입 352
22.1 객체 타입 개념 352
22.2 객체 타입 속성 355
22.3 객체 타입의 메소드 355
22.3.1 멤버 메소드 356
22.3.2 정적 메소드 362
22.3.3 생성자 메소드 363
22.4 객체 타입의 상속 369
22.5 메소드의 재정의 370
22.6 메소드의 중복 정의 373
22.7 REF 데이터 타입 374
22.8 객체를 테이블에 저장하는 방법 379
22.9 슈퍼타입과 서브타입 간의 변환 381
22.10 객체 타입의 진화 384
22.10.1 메소드의 추가 또는 삭제 385
22.10.2 속성의 추가, 삭제, 변경 386
22.10.3 타입의 FINAL과 NOT FINAL의 변경 387
CHAPTER 23 저장 서브프로그램 관리 388
23.1 변경과 삭제 388
23.2 딕셔너리에서 저장 서브프로그램 조회하기 389
23.3 저장 서브프로그램 권한 관리 391
CHAPTER 24 외부 프로그램에서 저장 서브프로그램 호출 394
24.1 자바 프로그램에서 저장 서브프로그램 호출 395
24.1.1 자바에서 저장 함수 호출 396
24.1.2 자바에서 저장 프로시저 호출 398
24.2 C# 프로그램에서 저장 서브프로그램 호출 401
24.2.1 C#에서 오라클을 사용하기 위한 준비 402
24.2.2 C#에서 저장 함수 호출 405
24.2.3 C#에서 저장 프로시저 호출 409
CHAPTER 25 자바 저장 프로시저 412
25.1 자바 저장 프로시저의 작성 방법과 절차 413
25.1.1 자바 클래스 파일을 DB에 로드 415
25.1.2 자바 소스 파일을 DB에 로드 417
25.1.3 자바 소스를 DB에 직접 생성 418
25.2 오라클의 SQL 데이터 타입과 자바 타입 간의 매핑 419
25.3 자바 저장 프로시저에서 자신을 실행한 오라클에 접속하기 421
25.4 오라클에서 지원하지 않는 기능을 자바로 구현하기 426
그렇다고 해서 SQL이 만능인 것은 아니다. SQL만으로 업무 로직을 처리하기에는 너무 복잡하거나 심지어는 불가능한 경우도 있다. 실제 업무 처리 로직에는 절차적인 요소가 매우 많다. PL/SQL이 없던 시절에는 이런 절차적인 요소를 코볼(COBOL)과 같은 언어가 담당했다. 메인프레임에서 실행되는 코볼 프로그램에 데이터베이스와의 인터페이스를 위한 임베디드 SQL(Embedded SQL) 처리 기능을 추가하여 절차적인 업무들을 처리했다. 과거에는 대규모 비즈니스 업무 처리에 사용된 언어가 거의 코볼 일색이었기 때문에 어쩌면 이것이 자연스러웠을 것이다. _2p
데이터 타입의 지정 방법 중에서 특이하면서도 매우 유용한 형식이 있는데, 변수나 칼럼, 테이블, 커서 등의 기존 선언을 참조하여 데이터 타입을 지정하는 방법이다. 오라클에서 공식적으로 사용하는 용어는 아니지만, 보통 이를 앵커(Anchor)라고 부른다. 이 방법을 사용하면 식별자의 선언문이 간단해지고, 차후에 참조되는 타입이 변경되더라도 이를 참조하는 쪽은 소스 코드를 수정하지 않아도 된다는 장점이 있다. 앵커는 다음의 두 가지 형식으로 사용이 가능하다. _71p
트랜잭션은 세션별로 독립적으로 유지된다. 두 사람이 별도로 각자의 SQL*Plus를 사용하여 접속했다면 이는 서로 다른 세션이며(물론, 한 사람이 두 개의 SQL*Plus를 실행하는 경우도 마찬가지로 서로가 다른 세션이다), 따라서 둘은 별도의 독립적인 트랜잭션이다. 서로 다른 트랜잭션은 독립적이므로, 한 세션(트랜잭션)이 커밋을 하더라도 다른 세션(트랜잭션)의 변경 사항을 커밋하는 일은 없다. 이는 바로 다음에 설명할 롤백의 경우에도 마찬가지다. __122p
PL/SQL은 절차형 데이터베이스 언어다. 절차형 언어로서 갖춰야 하는 기본적인 요소는 제어문이다. 절차적 처리를 효율적으로 실시할 수 있도록 지원되는 부가 기능에는 컬렉션과 레코드가 있다. 절차형 언어에서 데이터베이스와 상호 작용하기 위해서 커서가 기본적으로 지원되고, 정적 커서(Static Cursor)의 제약 사항을 보완하기 위해서 동적 SQL(Dynamic SQL)이 지원된다. 요즘 대부분의 언어는 절차 처리에서 예외 발생 시 이를 스마트하게 처리할 수 있도록 하는 예외 처리를 지원하는데, 오라클 PL/SQL 역시 예외 처리를 지원한다. _134p
PL/SQL의 가장 큰 장점 중의 하나는 데이터 처리 로직을 데이터베이스에 저장할 수 있다는 것이다. 데이터베이스가 단순히 데이터만을 저장하는 것에서 나아가 데이터 처리를 위한 비즈니스 로직까지 저장할 수 있게 된 것이다. 기존 DBMS의 역할에서 상당히 진보한 것이라 할 수 있다. 데이터 처리 로직을 데이터베이스에 저장할 수 있으면 재사용성, 유지보수성, 모듈화, 표준화, 성능 등의 측면에서 여러 가지 장점이 생긴다. _268p
자바(Java)는 플랫폼 독립적인 언어로, 거의 모든 O/S에서 동작하기 때문에 기업 시스템을 구축하기 위해서 가장 많이 사용되는 언어다. 자바 언어에서는 데이터베이스를 지원하는 범용 클래스를 사용할 수도 있고, 각 DBMS 벤더가 제공하는 전용 클래스를 사용할 수도 있다. 오라클을 사용하여 시스템을 구축할 때는 오라클이 제공하는 전용 드라이버를 사용하는 경우가 대부분이므로 이 책에서도 오라클이 제공하는 JDBC 클래스를 사용하기로 한다. _395p
오라클 PL/SQL 프로그래밍 철저 해부!
높은 생산성을 내기 위한 프로그래머의 필수 선택, PL/SQL!
흔히 오라클 하면 SQL만을 떠올리지만, 이 SQL만으로는 부족하다 느껴질 때가 많지 않으신가요? 바로 이런 아쉬움을 메울 수 있는 수준 높지만 읽기 쉽고, 친절하나 결코 가볍지 않은, 세심하고 꼼꼼한 PL/SQL 책이 출간되었습니다!
개발자로 오랫동안 일해 온 저자가 개발자 관점에서 DB 응용프로그램을 개발하는 데 필요한 주제를 폭넓게 다루었고, 입문부터 중급 수준까지의 독자를 모두 아우를 수 있도록 꼭 필요한 내용들만 수록하여 어느 정도 수준에 이를 때까지 여러분들이 필요로 할 PL/SQL의 다양한 기술들을 습득하기에 이 한 권으로 충분할 것입니다.
SQL만 잘 아는 프로그래머보다는 PL/SQL까지도 잘 아는 프로그래머가 훨씬 더 높은 생산성을 낼 수 있습니다. SQL로 구현하기 어렵거나 불가능한 것들을 PL/SQL로 능숙하게 구현할 수 있게 된다면, 여러분은 최고의 생산성을 내는 유능한 프로그래머가 될 수 있을 것입니다. 이 책과 더불어 한 단계 더 수준 높은 프로그래머로 거듭날 기회를 잡으세요!
작가정보
저자(글) 나장근
저자 나장근은 정보관리기술사, 정보시스템감리사, 기술지도사, 데이터품질인증심사원
(현)위즈베이스 컨설팅본부 이사
(전)위즈베이스 기술연구소장
(전)웨어밸리 기술연구소장
(전)한국오라클 컨설팅사업부
(전)삼성 SDS 공공사업부
서울대학교 공과대학 학사
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)