3.첫 번째 Pro C 프로그램 작성하기, 설명 Pro C를 사용하여 간단한 C 프로그램을 작성하고 Oracle 데이터베이스와 연동하는 방법을 안내

3. 첫 번째 Pro*C 프로그램 작성하기

Pro*C는 Oracle에서 제공하는 미리 컴파일된 C 프로그램의 소스 코드에 SQL 문장을 포함시킬 수 있는 도구입니다. 이 도구를 사용하면 C 프로그램 내에서 Oracle 데이터베이스와의 상호작용을 쉽게 구현할 수 있습니다. 이번 섹션에서는 Pro*C를 사용하여 간단한 C 프로그램을 작성하고 Oracle 데이터베이스와 연동하는 방법을 안내하겠습니다.

1. Pro*C란?

Pro*C는 C 프로그래밍 언어와 SQL 쿼리를 결합할 수 있는 방법을 제공하는 Oracle의 미리 컴파일된 도구입니다. Pro*C 소스 코드는 SQL 문을 포함하고 있으며, 이 소스 코드는 Pro*C 컴파일러에 의해 C 코드로 변환됩니다. 변환된 C 코드는 이후 일반 C 컴파일러를 사용하여 실행 파일로 컴파일할 수 있습니다.

2. Pro*C 프로그램의 구조

Pro*C 프로그램은 C 코드와 SQL 문이 혼합되어 있습니다. 기본적인 구조는 다음과 같습니다:


#include <stdio.h>
#include <sqlca.h>

EXEC SQL BEGIN DECLARE SECTION;
    int id;
    char name[50];
EXEC SQL END DECLARE SECTION;

int main() {
    /* Oracle 데이터베이스에 연결하는 부분 */
    EXEC SQL CONNECT :username IDENTIFIED BY :password;

    /* SQL 쿼리 실행하는 부분 */
    EXEC SQL SELECT first_name INTO :name FROM employees WHERE employee_id = :id;

    /* 결과 출력하는 부분 */
    printf("Employee Name: %s\n", name);

    /* 연결 종료 */
    EXEC SQL COMMIT;
    EXEC SQL DISCONNECT;
    return 0;
}

3. 환경 설정

Pro*C 프로그램을 작성하기 전에 Oracle 데이터베이스 클라이언트가 설치되어 있어야 하며, Pro*C 컴파일러도 필요합니다. 환경 변수를 설정하고 Oracle 데이터베이스에 연결할 수 있도록 준비합니다. 일반적으로 다음과 같은 환경 변수를 설정합니다:

  • ORACLE_HOME: Oracle 테이블 및 데이터베이스 클라이언트의 경로를 지정합니다.
  • LD_LIBRARY_PATH: Oracle 라이브러리가 위치한 디렉터리를 추가합니다.

4. 첫 번째 Pro*C 프로그램 작성하기

이제 간단한 Pro*C 프로그램을 작성해 보겠습니다. 이 프로그램은 데이터베이스의 직원 정보를 조회하는 기능을 수행합니다.


#include <stdio.h>
#include <sqlca.h>

EXEC SQL BEGIN DECLARE SECTION;
    char username[20] = "your_username"; // DB 사용자 이름
    char password[20] = "your_password"; // DB 비밀번호
    int id;
    char name[50];
EXEC SQL END DECLARE SECTION;

int main() {
    EXEC SQL WHENEVER SQLERROR DO break;

    /* Oracle 데이터베이스에 연결 */
    EXEC SQL CONNECT :username IDENTIFIED BY :password;

    printf("Enter Employee ID: ");
    scanf("%d", &id);

    /* SQL 쿼리 실행 */
    EXEC SQL SELECT first_name INTO :name FROM employees WHERE employee_id = :id;

    /* 결과 출력 */
    printf("Employee Name: %s\n", name);

    /* 연결 종료 */
    EXEC SQL COMMIT;
    EXEC SQL DISCONNECT;

    return 0;
}

5. 프로그램 컴파일

위에서 작성한 Pro*C 프로그램은 `.pc` 파일 확장자를 사용하여 저장합니다. 예를 들어, `employee_info.pc`라는 파일에 프로그램을 저장했다고 가정합니다. 이 파일을 컴파일하기 위해 Pro*C 컴파일러를 사용해야 합니다. 다음 명령어를 사용할 수 있습니다:


proc employee_info.pc

위 명령어는 `employee_info.c`라는 C 파일을 생성합니다. 이 파일은 C 컴파일러로 컴파일할 수 있습니다.

6. C 컴파일러로 컴파일

생성된 C 파일을 gcc와 같은 C 컴파일러를 사용하여 실행 파일로 컴파일합니다. 다음과 같이 명령어를 입력합니다:


gcc employee_info.c -o employee_info -lsqlca -lclntsh

7. 프로그램 실행하기

컴파일이 완료되면 프로그램을 실행할 수 있습니다. 다음 명령어를 입력하여 프로그램을 실행하세요:


./employee_info

프로그램은 직원 ID를 요청합니다. 정보를 입력하고 엔터 키를 누르면 해당 직원의 이름을 출력합니다.

8. 에러 처리

실제 프로그램에서는 에러 처리가 필요합니다. Pro*C는 SQL 오류 발생 시 프로그램 흐름을 제어할 수 있는 다양한 방법을 제공합니다. 예를 들어, `EXEC SQL WHENEVER SQLERROR DO break;` 문을 사용하여 SQL 오류가 발생하면 즉시 처리를 종료합니다.

9. SQL 예시

다양한 SQL 쿼리를 작성할 수 있습니다. 예를 들어, 직원들의 모든 정보를 조회하는 쿼리는 다음과 같습니다:


EXEC SQL SELECT employee_id, first_name, last_name INTO :id, :name FROM employees;

10. 결론

Pro*C는 C 프로그램과 Oracle 데이터베이스의 효율적 연동을 도와주는 강력한 도구입니다. 이번 섹션에서는 Pro*C를 사용하여 간단한 프로그래밍을 통해 데이터베이스와의 연결, SQL 쿼리 수행, 에러 처리 등을 배웠습니다. 더욱 복잡한 쿼리와 데이터베이스 연동 기능은 다양한 문서와 자료를 통해 심화 학습을 진행할 수 있습니다.

이제 여러분은 첫 번째 Pro*C 프로그램을 작성하고 실행할 준비가 되었습니다. 앞으로 더 다양한 Pro*C 기능과 활용법을 탐구해보시기 바랍니다.