ecpg

ecpg — 임베디드 SQL C 전처리기

요약

ecpg [옵션...] 파일...

설명

ecpg 명령은 C 프로그램용 임베디드 SQL 전처리기다. SQL 명령을 사용하는 C 프로그램을 이 전처리기가 해석할 수 있는 구문으로 소스 파일을 작성하고, 이 명령을 이용해서 C 컴파일러가 해석할 수 있는 소스 파일로 바꾼다.

ecpg will convert each input file given on the command line to the corresponding C output file. If an input file name does not have any extension, .pgc is assumed. The file's extension will be replaced by .c to construct the output file name. But the output file name can be overridden using the -o option.

If an input file name is just -, ecpg reads the program from standard input (and writes to standard output, unless that is overridden with -o).

여기서는 임베디드 SQL 언어에 대한 설명은 하지 않는다. 이 부분은 35장에서 자세히 다룬다.

옵션

ecpg 명령에서 사용할 수 있는 옵션은 다음과 같다:

-c

SQL 코드에서 특정 C 코드를 자동으로 만든다. 현재 이 옵션은 EXEC SQL TYPE 구문용이다.

-C 모드

호환 모드 지정. 모드 값으로 INFORMIX, INFORMIX_SE ORACLE 셋 중 하나를 지정할 수 있다.

-D 심볼

C 전처리에서 사용할 심볼 지정.

-h

Process header files. When this option is specified, the output file extension becomes .h not .c, and the default input file extension is .pgh not .pgc. Also, the -c option is forced on.

-i

Parse system include files as well.

-I 디렉터리

EXEC SQL INCLUDE 지정한 파일이 있는 디렉터리를 지정한다. 기본 값은 순서 대로, . (현재 디렉터리), /usr/local/include, PostgreSQL 컴파일 할 때 지정한 인크루드 디렉터리 (기본값: /usr/local/pgsql/include), /usr/include 디렉토리들이다.

-o 파일이름

ecpg 작업 출력물의 이름을 파일이름으로 지정한다. Write -o - to send all output to standard output.

-r 옵션

실행 환경을 지정한다. 사용할 수 있는 옵션은 다음 중 하나다:

no_indicator

Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach.

prepare

Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement.

questionmarks

Allow question mark as placeholder for compatibility reasons. This used to be the default long ago.

-t

트랜잭션 자동 커밋 처리. 이 옵션을 사용하면, SQL 명령은 명시적으로 트랜잭션 영역 안에 있다고 지정하지 않는 이상 자동으로 그 명령이 실행 되면 커밋 된다. 기본값은 EXEC SQL COMMIT 구문이 실행 될 때만 커밋 된다.

-v

버전과 "include" 경로를 포함한 부가 정보를 보여준다.

--version

ecpg 버전을 보여주고 마친다.

-?
--help

ecpg 명령행 옵션 도움말을 보여주고 마친다.

참고

이 명령으로 전처리 작업이 완료된 C 코드 파일을 컴파일 하려면, PostgreSQL include 디렉터리 안에 있는 ECPG 헤더 파일이 필요하다. 그래서, C 컴파일 작업에서는 -I/usr/local/pgsql/include 옵션처럼 그 컴파일러 맞는 include 파일 경로 설정이 필요하다.

이렇게 컴파일 된 실행 파일은 libecpg 라이브러리를 필요로한다. 그래서, 링크 작업을 할 때는 -L/usr/local/pgsql/lib -lecpg 이와 비슷한 옵션이 추가적으로 필요하다. (동적으로 링크한다면, LD_LIBRARY_PATH 또는 LD_RUN_PATH 설정이 필요할 수도 있다. - 옮긴이)

앞에서 설명한 각 경로들의 적당한 값을 찾는 방법은 pg_config 명령을 이용하면 된다.

예제

prog1.pgc 이름으로 임베디드 SQL C 소스 파일을 작성했다면, 다음 작업 과정을 거쳐 실행파일을 만들 수 있다:

ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg