본문 바로가기

DB/__Oracle

PL/SQL Sample Code


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을 관계형 테이블로 변환하는 방법에 대해 설명합니다.
소스 코드


출처 : Tong - woosung님의 Oracle/C#/ASP통