이번에 개발 장비의 Oracle DBMS를 9.2.0.4 버전에서 9.2.0.8로 패치했습니다. 패치 과정도 만만치 않았습니다. 패치후 Post patch 과정을 진행하는데, 운영하던 DB라서 그런건지, 일반 PC에 Linux를 설치해서 운영하는 서버라 성능이 좋지 않아서 인지, 예전에 IBM P 시리즈에서 패치하던때랑은 달리 시간이 많이 걸리더군요.
 암튼 이런 과정을 거친후에 문제가 발생했습니다. Pro*C로 서버 데몬을 개발하시던 분이 갑자기 오류가 발생한다고 하시더군요. 이런... 이제 문제 해결에 들어가야 겠죠.

 오류 메세지는 아래와 같았습니다.
PCC-02081: CMD-LINE: Unterminated option value list or value list was truncated.

 관련 문서를 찾아보니 아래와 같은 내용이 나왔습니다.
PCC-02081: CMD-LINE: Unterminated option value list or value list was truncated.
    Cause: An option that takes a list of values was entered. The value list did not have a closing parenthesis. This error may also occur if the list of values entered on a single line was too long and Pro*C truncated it.
    Action: Ensure that all value lists are terminated with a closing parenthesis. Split long value lists into individual entries.

내용인 즉슨... 옵션 값이 길어서 잘라서 읽어들였다... 뭐... 이런것 같네요. 그래서
/opt/oracle/product/9.2.0.4/precomp/admin/pcscfg.cfg 파일을 열어서는 지난번과는 달리 옵션으로 넘기는 데릭토리 이름중에서 현재 서버에는 존재하지 않는 디렉토리(예를 들어 CentOS인데 SUSE리눅스의 디렉토리 경로가 설정되어 있더군요.)들을 삭제해줬더니 컴파일 오류가 사라지더군요.
아... 겨우... 해결했네요. ^^

 Linux에 Oracle DBMS를 설치하고, Client를 설치하면서 Pro*C까지 설치를 했는데 막상 make 파일을 돌려보면 컴파일 오류가 발생하는 경우가 많죠. 저희 개발자분이 새로 설치한 개발 장비에서 설정이 안되어 있다고해서 거의 하루를 헤메다가 해결을 했습니다.
 저희 개발 장비의 문제는 기존에 설치된 GCC 버전이 Pro*C에 설정된 버전과 틀려서 헤더 파일들의 위치(디렉토리 이름)를 새로 설정해서 해결을 했습니다.

 [오라클 설치 위치/precomp/admin/pcscfg.cfg] 파일을 vi로 열어보면 아래와 같은 내용이 나옵니다.
[oracle@Test2 /opt/oracle/product/10g/precomp/admin]$ cat pcscfg.cfg
sys_include=(/ade_autofs/ade_linux/RDBMS_10.2.0.4.0_LINUX.rdd/080216/precomp/public,/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/gcc/i386-redhat-linux/3.4.5/include,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/lib/gcc/i586-suse-linux/4.1.0/include)
ltype=short

 여기에 자신의 PC와 맞는 gcc-lib 관련 디렉토리가 설정되어 있는지 확인을 하고 없다면 추가해주면 됩니다.

+ Recent posts