OpenFrame PL/I 검증
본 장에서는 OpenFrame PL/I를 설치한 후 PLI 샘플 파일을 컴파일하는 과정에 대해서 기술한다.
1. 컴파일
OpenFrame PL/I를 설치한 후 ofpli 명령어를 사용하여 PLI 샘플을 컴파일하는 방법에 대한 설명이다.
-
${OFPLI_HOME}의 다음 위치에서 PLI 샘플을 확인한다.
${OFPLI_HOME}/temp
-
ofpli 명령어를 실행해서 sample.pli 샘플을 컴파일한다. 명령어에 대한 자세한 내용은 컴파일 명령어를 참고한다.
ofpli -o sample.so sample.pli
-
컴파일할 때 지정한 .so 파일로 출력 파일이 생성된 것을 확인할 수 있다. 출력 파일이 생성되면 OpenFrame PL/I의 설치가 정상적으로 완료된 것이다. 에러가 발생하는 경우 에러 메시지를 확인한다. 에러 메시지에 대한 자세한 내용은 컴파일 에러 메시지를 참고한다.
sample.so
2. 컴파일 명령어
다음은 컴파일 명령어 ofpli의 사용 방법이다.
-
사용법
ofpli 소스 파일 ... [명령 옵션...]
-
소스 파일
컴파일을 수행할 소스 파일들을 기술한다.
-
소스 파일을 컴파일하는 기본 명령어 옵션
옵션 설명 -o 파일이름
결과 출력 파일을 설정한다.
-I <dir>
INCLUDE 디렉터리를 설정한다.
-MI <dir>
%INCLUDE 문장에서 사용할 INCLUDE 디렉터리를 설정한다.
-SI <dir>
EXEC SQL INCLUDE 문장에서 사용할 INCLUDE 디렉터리를 설정한다.
-l <library>
공유 라이브러리를 연결한다.
-L <dir>
라이브러리 경로를 설정한다.
-O0, -O1, -O2, -O3
최적화 레벨을 설정한다. 숫자가 낮을수록 컴파일은 빠르지만 실행할 때 느릴 가능성이 있다.
-U
동적 적재 호출 기능을 활성화시킨다.
-g
소스 레벨 디버깅을 위한 디버깅 정보를 컴파일 결과 파일에 삽입한다.
--change old:new
외부 엔트리 이름을 old에서 new로 변경한다.
--disable-inc-limit
%INCLUDE statement의 파일 글자수 제한을 해제한다.
--dli
DLITPLI 인터페이스를 추가한다. (IMS 전용)
--enable-cics
CICS 전처리기를 활성화시킨다.
--enable-esql-oracle
Oracle ESQL 전처리기를 활성화시킨다.
--enable-esql-tibero
Tibero ESQL 전처리기를 활성화시킨다.
--enable-ofasm
OpenFrame ASM를 이용하여 ASM을 호출할 경우 지정한다.
--enable-scan-extascii
Extended-ascii 문자를 인식하도록 설정한다. --enable-scan-sjis 옵션과 같이 사용할 수 없다.
--enable-scan-sjis
Shift-JIS 문자를 인식하도록 설정한다. --enable-scan-extascii 옵션과 같이 사용할 수 없다.
--fixeddec31
FIXED DECIMAL 변수의 최대 정밀도를 31로 지정한다.
--rule-margin-s
소스 기술영역 외 공백이 아닌 문자가 있을 경우 에러 메시지를 출력한다.
--rule-margin-w
소스 기술영역 외 공백이 아닌 문자가 있을 경우 경고 메시지를 출력한다.
--system-cics
PL/I 프로그램이 실행되는 시스템 환경을 CICS로 지정한다.
--system-ims
PL/I 프로그램이 실행되는 시스템 환경을 IMS로 지정한다.
--system-mvs
PL/I 프로그램이 실행되는 시스템 환경을 MVS로 지정한다. (기본값)
--trace
프러시저의 시작과 끝, 매개변수, 반환 값에 대한 trace 정보를 출력한다.
--trace-flow
프러시저의 시작과 끝에 trace 정보를 출력한다.
--trace-param
매개변수 값에 대한 trace 정보를 출력한다.
--trace-return
반환 값에 대한 trace 정보를 출력한다.
--h, --help
도움말을 출력한다.
--help-esql
ESQL 전처리기의 도움말을 출력한다.
--license
OpenFrame PL/I의 라이선스 정보를 출력한다.
--save-temps
컴파일할 때 생성되는 임시 파일들을 삭제하지 않고 남겨둔다.
명령어 옵션으로 생성되는 임시 파일들은 다음과 같다.
-
.mp : SQL 전처리기나 CICS 전처리기가 활성화된 경우만 생성되는 macro 전처리 결과 파일
-
.pp : 전처리가 최종적으로 완료된 전처리 결과 파일
-
.bc : 컴파일 결과 파일
-
.o : 어셈블리 결과 파일
--version
OpenFrame PL/I의 버전 정보를 출력한다.
-
-
소스 파일을 ESQL 전처리하는 명령어 옵션
옵션 설명 --close-on-commit
커밋을 할 때 커서를 자동으로 닫도록 지정한다.
--end-of-fetch (1403 | 100)
SQL 문장을 수행한 후 END-OF-FETCH 상황에서 사용자에게 반환할 SQLCODE 값을 지정한다. (기본값: 1403)
--insert-no-data-error
INSERT, SELECT 구문을 사용할 경우에도 "no data found"가 발생하도록 지정한다.
--no-select-error
호스트 변수 등으로 인해 주어진 수행 결과 개수보다 실제로 질의를 수행한 결과가 더 많이 반환된 경우 에러를 발생시키도록 지정한다.
--picx (CHARF | VARCHAR2)
PL/I CHAR 타입의 SQL 데이터 타입을 지정한다. (기본값 CHARF)
--prefetch N
커서를 오픈할 때 속도 향상을 위해 몇 개의 로우를 미리 가져올지 지정한다.
--unsafe-null
지시자 변수가 없을 때 NULL 값을 허용하도록 지정한다.
-
3. 컴파일 에러 메시지
OpenFrame PL/I은 컴파일을 수행할 때 에러가 발생할 경우 에러 메시지를 출력한다.
에러 메시지 구조는 다음과 같다.
SAMPLE.pli 6:11 : OFPLI1009 [S] Syntax error. [파일 이름] : SAMPLE.pli [소스 위치] : 6:11 [에러 번호] : OFPLI1009 [에러 종류] : [S] [에러 내용] : Syntax error.
항목 | 설명 |
---|---|
파일 이름 |
에러가 발생한 파일 이름이다. |
소스 위치 |
에러가 발생한 파일의 라인과 컬럼 위치이다. |
에러 번호 |
에러를 구분하기 위한 일련 번호이다. |
에러 종류 |
|
에러 내용 |
에러에 대한 설명이다. |