PL/SQL Sample Code
이 페이지에서는Oracle Database PL/SQL 기능의 다양한 활용법을 예시하는 PL/SQL 코드 샘플을 제공합니다.
Sample Code
Oracle Database 10g
PL/SQL 샘플 애플리케이션 - FORALL [12-Jan-2005]
Oracle Database 10g는
non-consecutive index collection를 위한 FORALL syntax를
지원합니다. INDICES OF 구문을 이용하면 sparse collection에
FORALL syntax를 적용할 수 있으며, 또 VALUE OF 구문을 이용하여
다른 collection을 참조하는 index collection에 FORALL syntax를
적용할 수 있습니다. 이 샘플에서는 PL/SQL에서 이러한 기능을 이용하는 방법을
설명합니다.
Readme
파일 다운로드(ZIP)
정규 표현식 - 사용자 검색 샘플 [13-Dec-2004]
이 샘플은 정규 표현식 API를 이용하여, TRIGGER, PROCEDURE, CURSOR 등을 통해 얻은 정보를 검증, 검색, 추출하는 방법을 예시하고 있습니다. User Information 시스템 시나리오를 기반으로 하는 이 샘플은 다양한 패턴을 통해 취미, 관심사, 위치 등 데이터베이스 테이블에 저장된 정보를 검색, 추출하고 있습니다.
Readme 파일 다운로드(ZIP)
정규 표현식 - DNA 샘플 [01-Dec-2004]
이 샘플은 정규 표현식 API를 이용하여 SGD 데이터베이스로부터 수신한 HTTP 스트림을 파싱하고 DNS 시퀀스를 추출합니다. 이 시퀀스는 로컬 테이블에 저장되며 향후 정규 표현식을 이용한 분석을 통해 단백질 패턴을 추출하는데 사용됩니다.
Readme 파일 다운로드(ZIP)
Regular Expression
Sample [28-Sep-2004]
전형적인 사용자 등록 시나리오를 기반으로,
Oracle Database 10g 환경에서 사용자 입력을 검증하는 regular
expression function의 샘플입니다.
Readme 파일
다운로드(ZIP)
Sample Code Oracle9i
Database Release 2
이 샘플에서 Common Schema의 오브젝트(employees 테이블)를 참조하는 부분을 제외한 모든 코드는 샘플 내부의 오브젝트만을 참조합니다. Common Schema는 일반 Oracle 환경에 사전 설치되어 있으며, 필요한 경우 Oracle Home 디렉토리의 demo/schema 디렉토리 안에 있는 mksample.sql을 실행하여 직접 생성할 수 있습니다.
Associative arrays (index-by-varchar2 tables)
PL/SQL 프로그램에서 SQL의 RECORD bind 이용
Utl_File: Oracle9i Database Version 9.2.0의 개선사항 개요
Sample Code Oracle9i
Database Release 1
이 샘플에서 Common Schema의 오브젝트(employees
테이블)를 참조하는 부분을 제외한 모든 코드는 샘플 내부의 오브젝트만을 참조합니다.
Common Schema는 일반 Oracle 환경에 사전 설치되어 있으며, 필요한
경우 Oracle Home 디렉토리의 demo/schema 디렉토리 안에 있는 mksample.sql을
실행하여 직접 생성할 수 있습니다.
PL/SQL static SQL에서 Cursor 재사용
PL/SQL
프로그램에서 CASE 구문의 활용
Bulk
Binding 관련 개선사항
Table
Functions and Cursor Expressions
Multilevel
Collections
Bulk
Binding 관련 개선사항
UTL_HTTP
패키지 (Version 9.0.1 and later) 활용 예제: B2B 시나리오
Native
Complilation
Send email from the
database using the UTL_SMTP package
사전 정의된 데이타베이스 이벤트가 발생하는
경우 (예를 들어 구매 요청에 관련된 레코드의 필드가 변경되는 경우) 관련자들에게
이메일로 통보하는 예제입니다.
소스
코드
Sample Code Oracle8i Database
Bulk
Binds
Bulk
Bind를 사용한 경우와 사용하지 않은 경우의 DLM 작업(insert, select
쿼리 등) 성능을 비교합니다. 소스
코드
Profiler Usage
Examples
Profiler 데이타를 이용한 예제입니다. prof_report_utilities 패키지에 대한 쿼리와 호출의 유용한 사례들을 포함하고 있습니다.
소스 코드
Profiler Reporting
Utilities
prof_report_utilities 패키지를 포함하는 PL/SQL Profiler Reporting Utilities입니다.
소스 코드
Nocopy Modifier
NOCOPY는 IN OUT 및 OUT parameter mode에 대한 ‘Modifier’ 버전입니다. NOCOPY 기능을 활용해 프로시저 또는 함수에 "pass by reference" 형태로 매개변수를 전달하고 CPU, 메모리 오버헤드를 최소화할 수 있습니다. 이 샘플 코드는 NOCOPY modifier를 이용해 얻을 수 있는 성능 효과를 예시하고 있습니다.
소스 코드
Autonomous Transactions
Autonomous Transaction은 자신을 호출한 트랜잭션(main transaction)으로부터 독립적인 context에서 SQL 작업을 수행하고, 커밋 또는 롤백한 후 다시 자신을 호출한 트랜잭션(main transaction)의 원래 context로 되돌아오는 것을 가능하게 합니다.
소스 코드
Debugging Package for External
Procedures
외부로부터 호출된 C 프로그램을 디버그하는 단계를 설명하고 있습니다. 함께 로딩해야 할 패키지를 포함하고 있습니다.
소스 코드
External Procedures
이 샘플 프로그램은 PL/SQL의 external procedure의 생성과 사용법을 예시하고 있습니다. 데모 프로그램은 두 개의 파일(extproc.sql & extproc.c)로 구성됩니다. extproc.c는 extproc.sql에서 참조하는 C 함수를 포함하고 있습니다.
소스코드: PL/SQL 버전 C 버전
Invoker-Rights Programs
Oracle 8i 이전 버전까지는, 모든 프로그램이 자신을 정의한 사용자의 privilege를 갖고 실행되었습니다.. Invoker-Rights 프로그램 샘플은 프로그램을 호출하는 사용자의 privilege로서 실행됩니다.
소스 코드
Native Dynamic SQL in
PL/SQL
Oracle8i 이전 버전까지의PL/SQL Dynamic SQL 지원은 DBMS_SQL 패키지의 programmatic interface를 통해 제공되었습니다. Native Dynamic SQL이 지원되면서 PL/SQL에서의 dynamic SQL 프로세싱이 매우 쉽고 간단해졌을 뿐 아니라 성능적인 면에서도 향상을 가능하게 합니다.
소스 코드
PL/SQL Object Types
PL/SQL Object Types, Collections, Records 등의 개념을 설명하기 위한 은행 애플리케이션 데모 프로그램입니다. (exampbld.sql: 스키마 생성, examplod.sql: 데이타 로드)
소스: Object
Types
스키마
생성 데이타
로드
Table Operator
Nest되지 않은 collection에 대한 TABLE operator 사용 예제입니다. 또 local PL/SQL collection variable을 관계형 테이블로 변환하는 방법에 대해 설명합니다.
소스 코드
|