Pro*C

DB/Oracle 2012. 2. 24. 23:22

Pro*C (also known as Pro*C/C++) is an embedded SQL programming language used by Oracle Database database management systems. Pro*C uses either C or C++ as its host language. During compilation, the embedded SQL statements are interpreted by a precompiler and replaced by C or C++ function calls to their respective SQL library. The output from the Pro*C precompiler is standard C or C++ code that is then compiled by any one of several C or C++ compilers into an executable.

[edit]See also

[edit]External links


Pro*C Hello World Example

/* Hello World in Pro*C, the Oracle's embedded SQL environment */

#include 

EXEC SQL INCLUDE SQLCA;

int main() {
   char hello[15];
   char *user = "the_user";
   char *password = "the_password";
   char *sid = "the_sid";

   EXEC SQL CONNECT :user IDENTIFIED BY :password USING :sid;

   EXEC SQL
      SELECT 'Hello World' INTO :hello
      FROM DUAL;

   printf("%s\n", hello);

   EXEC SQL COMMIT RELEASE;

   return 0;
}


==========================================================================================

Pro*C ( 오라클 데이터베이스와 연동할 수 있는 C 프로그램 )

: Embedded SQL 프로그램이라고도 함.

 

: 내부 PL/SQL 을 통한 프로그램의 경우 오라클이라는 내부 울타리에서만 수행되는 특징이 큰 제약으로 작용한다. 이런 고민을 해결하기 위해서 대부분의 DBMS 벤더는 외부 C 프로그램과 결합할 수 있는 선행 컴파일러를 제공하고 있으며 오라클에서는 이를 Pro*C 라고 한다.

 

-> PL/SQL 과 같이 절차적 프로그래밍 이 가능한 프로그램 도구로서 PL/SQL 처럼 오라클 내부에서 수행되는 프로그램이 아니라 실행 가능한 외부 프로그램으로 작성이 되어 관련 작업을 수행 할 수 있게 해 주는 도구이다.

 

-> Pro*C 만으로는 실행 파일을 만들 수 없다. 따라서 Pro*C 는  C 프로그램을 컴파일할 수 있도록 x.C 파일을 생성해 준다(선행컴파일러). 이 x.C 는 통상적으로 컴파일 되고, 오라클 라이브러리와 결합되어 실행 파일이 만들어 진다.

 

< 프로그램 작성 방식 >

 

내장 SQL 방식

-> C 프로그램 내부에서 EXEC SQL 이라는 접두사 뒤에 SQL 문장을 직접 기술 하는 방식

-> 많이 사용 되는 방식임.

 

OCI 방식

-> OCI 라이브러리를 통해서 오라클 SQL 문장을 직접 호출하여 사용하는 방식.

 

두 방식의 차이점

 

내장SQL방식

- SQL 연산을 쉽고 명료하게 처리하기 위해 3GL  어플리케이션 개발

- 간결한 코드작성

- 컴파일 전에 소스 코드 선행 컴파일

- 선행 컴파일러를 별도로 구매

- ANSI 표준 준수

- 다중 행 질의만을 위해 명시적 커서 선언

- 선행 컴파일 시에 SQL 구문 확인

 

OCI 방식

- 데이터베이스를 최대한 제어하면서 3GL 어플리케이션 개발

- 길고 복잡한 코드 작성

- 선행 컴파일 단계 없이 코드 컴파일

- 오라클 데이터베이스와 함께 OCI 라이브러리 획득

- 독점 비 표준 절차적 호출 인터페이스 사용

- 모든 데이터베이스 연산을 처리하기 위한 명시적 커서 선언

- 실행 시간에 SQL 구문 확인



출처 -  http://blog.naver.com/sskkkll?Redirect=Log&logNo=120132622618 



'DB > Oracle' 카테고리의 다른 글

Pro*C 개요  (0) 2012.02.24
Pro*C 파헤치기  (0) 2012.02.24
sqlplus 사용  (0) 2012.02.20
Oracle 관리 및 SQLPlus 정리  (0) 2012.02.20
PL/SQL  (0) 2012.02.20
Posted by linuxism
,