반응형

이 문서는 Oracle의 Pro*C/C++ Programmer's Guide 11g Release 2 (11.2) 문서를 참조하여 정리한 문서입니다.

 

Pro*C는 Java 등의 언어가 보편화되면서 사용빈도가 많이 떨어진 개발 tool입니다. 그러나 금융권(은행, 증권)과 통신사 등과 같이 빠른 응답속도를 요구하는 시스템에서는 C언어를 아직도 선호하고 있으며 C언어로 Oracle DBMS 사용한 Batch 프로그램을 개발하려면 Pro*C를 사용할 수 밖에 없습니다.  Java 프로젝트와 잊을만하면 C언어 프로젝트가 반복되어 쉽게 훑어보기 위해서 정리하였습니다.  C 프로젝트 시에 도움이 되길 바랍니다.

 

목차

Pro*C 1. DBMS에 접속하기

 

Pro*C 1. DBMS에 접속하기

Oracle DBMS 접속 기본 문법 EXEC SQL CONNECT { :user IDENTIFIED BY :oldpswd | :usr_psw } [[ AT { dbname | :host_variable }] USING :connect_string ] [ {ALTER AUTHORIZATION :newpswd | IN { SYSDBA | SYSOPER } MODE} ] ; Default Connection 생성하기 Pro

www.it-note.kr

Pro*C 2. DB 접속 해제 및 Commit / Rollback

 

Pro*C 2. DB 접속 해제 및 Commit / Rollback

COMMIT / ROLLBACK 하기 DBMS에서 INSERT, UPDATE, DELETE 등의 문장으로 실행한 SQL문을 실제 DBMS에 반영 또는 취소를 하기 위해서 COMMIT 또는 ROLLBACK을 수행하게 됩니다. Pro*C에서 COMMIT 또는 ROLLBACK하는 방법에

www.it-note.kr

Pro*C 3. 변수선언과 INCLUDE

 

Pro*C 3. 변수선언과 INCLUDE

변수 선언 Pro*C에서 SQL문에 placeholder로 사용한 Host 변수를 선언하기 위해서는 아래와 같은 DECLARE SECTION 내에 선언합니다. (Host 변수 = C언어의 변수) EXEC SQL BEGIN DECLARE SECTION; ... /* 변수선언 */ EXEC SQL

www.it-note.kr

Pro*C 4. 기본 SQL문 실행

 

Pro*C 4. 기본 SQL문 실행

기본 SQL문 실행 일반적인 SQL문을 실행하는 것에 대해서 알아보겠습니다. default connection으로 처리할 경우에는 AT절을 생략가능합니다. SELECT (단건 조회) char emp_name[54]; char job[32]; long salary; long emp_n

www.it-note.kr

Pro*C 5-1. 오류 처리하기 (SQLCA)

 

Pro*C 5-1. 오류 처리하기 (SQLCA)

오류 처리하기 Pro*C에서 실행시 오류가 발생하였을 때에 오류처리하는 방법은 여러가지가 있습니다. 1. SQLCA(SQL Communication Area)를 이용하는 방법 - 오류가 발생하면 struct sqlca sqlca; 전역 구조체 변

www.it-note.kr

Pro*C 5-2. 오류 처리하기 (WHENEVER)

 

Pro*C 5-2. 오류 처리하기 (WHENEVER)

EXEC SQL WHENEVER를 이용한 오류처리 EXEC SQL WHENEVER ~를 이용한 오류 처리는 Event Handler 방식으로 오류를 처리하는 것으로 은 Event 종류라고 볼 수 있으며, 은 callback이라고 생각하면 됩니다. EXEC SQL WHENE

www.it-note.kr

Pro*C 6. 대량처리 (배열처리)

 

Pro*C 6. 대량처리 (배열처리)

배열처리 (Host Arrays) 배열로 처리하는 것의 장점 Host 변수에 배열을 넘긴다는 것은 한번에 여러건을 동시에 처리한다는 의미입니다. 여러건을 동시에 처리하는 것의 장점은 DBMS와의 통신 횟수를

www.it-note.kr

Pro*C 7. Dynamic SQL

 

Pro*C 7. Dynamic SQL

Dynamic SQL Static SQL은 정해진 SQL문으로 처리해야 하는 경우에 유용하지만 데이터의 상태에 따라 Runtime시에 SQL문을 동적으로 조립하여 SQL문을 실행해야하는 경우도 있습니다. 예를들면 SQL문이 INPUT

www.it-note.kr

 

참조 소스

첨부된 소스 파일은 Oracle에서 제공해주는 Pro*C 소스를 일반적인 SQLCA 오류처리 pattern으로 변경하였으며, 일부 모듈화 및 최근 버전의 C언어 규칙으로 변경하였습니다. 다운받아서 필요한 부분 Copy & Paste 하시기 바랍니다.

 

1. 단건 조회를 구조체 단위로 출력하는 Sample

sample1.pc
0.00MB

2. 다건 조회시 출력을 구조체 단위로 데이터를 Fetch 하는 sample

sample2.pc
0.00MB

3. 대량 데이터 조회를 Array로 조회하는 Sample

sample3.pc
0.00MB

4. Dynamic SQL Method 1에 대한 Sample

sample4.pc
0.00MB

5. Dynamic SQL Method 2에 대한 Sample

sample5.pc
0.00MB

6. Dynamic SQL Method 3에 대한 Sample

sample6.pc
0.00MB

7. Dynamic SQL Method 4에 대한 Sample

sample7.pc
0.02MB

    Dynamic SQL Method 4는 매우 복잡하여 원본 소스를 그대로 올렸습니다.  Method 4는 일반 업무용 프로그램을 개발할 때에는 거의 사용되지 않으나, 시스템 공통 프로그램으로 가끔 사용하게 됩니다.(프로젝트마다 한번은 사용하게 되더군요.) Powerful 한 기능을 가지고 있으나 C언어의 2중 포인터를 잘 활용할 줄 알아야 하며, sqlplus와 같은 다목적 application을 만들려면 볼 필요가 있습니다.

반응형

'Oracle > Pro*C' 카테고리의 다른 글

Pro*C 7. Dynamic SQL  (0) 2019.09.25
Pro*C 6. 대량처리 (배열처리)  (0) 2019.09.25
Pro*C 5-2. 오류 처리하기 (WHENEVER)  (0) 2019.09.25
Pro*C 5-1. 오류 처리하기 (SQLCA)  (0) 2019.09.25
Pro*C 4. 기본 SQL문 실행  (0) 2019.09.25
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

,