>>이호재 님께서 쓰시길<<
:: 안녕하세요...
::
:: 제가 이번에 c에서 oracle에 접속할 일이 생겨서 pro*c 라는 걸 보았는데,
::
:: 아무리 해도 에러가 나는군요.....처음이라서 그런지....
::
:: 고수님들의 도움 부탁드립니다.
::
:: 환경은 intel linux (redhat 6.1기반)이구요...
::
:: 오라클 8.1.5입니다.
::
:: 소스의 일부는 다음과 같습니다.
::
:: -----------------------------
::
:: EXEC SQL BEGIN DECLARE SECTION;
:: varchar2 a[100],b[100],c[50],d[10],e[10],f[5],g[100],h[100],i[10];
:: long int j;
:: EXEC SQL END DECLARE SECTION;
:: EXEC SQL INCLUDE SQLCA;
::
:: .
:: .
:: .
:: .
:: scanf(msgbuf,"order_id:%s\ntransaction:%s\nmerchant_id:%s\namount:%d\ncurrency:
:: %s\ncard:%s\ncard_period:%s\nauth_no:%s\nauth_date:%s\nresponse_code:%s",a,b,c,&j,d,e,f
:: ,g,h,i);
:: EXEC SQL CONNECT :ecard IDENTIFIED BY :cardkorea AT DB_NAME USING :TEST;
::
:: if (sqlca.sqlcode <0 )
:: {
:: EXEC SQL ROLLBACK WORK RELEASE;
:: return(-4);
:: }
:: EXEC SQL INSERT INTO ecredit values(:a,:b,:c,:j,:d,:e,:f,:g,:h,:i);
:: EXEC SQL COMMIT WORK RELEASE;
::
:: 컴파일을 하니...첨에 include 못한다고 에러가 나서
::
:: 다음과 같이 컴파일을 했습니다.
::
:: proc INCLUDE=/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include MsgMap
::
:: 에러는 다음과 같습니다.
::
:: Pro*C/C++: Release 8.1.5.0.0 - Production on Thu Oct 26 14:49:35 2000
::
:: (c) Copyright 1999 Oracle Corporation. All rights reserved.
::
:: System default option values taken from: /usr1/oracle/app/oracle/product/815/precomp/admin/pcscf
:: g.cfg
::
:: Syntax error at line 117, column 2, file /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
:: /limits.h:
::
:: INTERNAL ERROR: Failed assertion [PGE Code=90105]
::
:: Segmentation fault
::
:: 이해가 안가는군요....
::
:: 저쪽 라인에서 에러난 부분을 주석처리해도 역시나 에러가 납니다.
::
:: 고수님들의 도움 부탁드립니다.
::
::
::
::
::
$ORACLE_HOME/precomp/admin 에 pcscfg.cfg 파일이 처음 설치시에는 비어있습니다. 여기에 적절한 값을 넣어주어야 하지요.
cat pcscfg.cfg
sys_include=($ORACLE_HOME)/precomp/public/,/usr/include/,/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include)
include=($ORACLE_HOME)/precomp/public)
include=($ORACLE_HOME)/rdbms/demo)
include=($ORACLE_HOME)/network/public)
include=($ORACLE_HOME)/plsql/public)
ltype=short
그리고 $ORACLE_HOME/precomp/lib/env_precomp.mk 파일에서 153번째 줄이
$(EXPDLIBS) $(EXOSLIBS) $(SYSLIBS) -lc -laio $(MATHLIB) $(USRLIBS)
이렇게 되어있는것에서 -laio 부분을 제거하면 된다고 합니다.
이건 오라클 테크넷에 있는 815설치 안내서에 나와있는 내용입니다.
저는 816버전을 사용하는데 pcscfg.cfg는 0바이트라서 내용을 복사해주었고 두번째 파일은 패치가 되어서 나온 듯 하더군요. -laio 부분이 없더라구요. 저도 pro*c에 대해서 잘 몰라서 이게 원하는 답인지는 모르겠는데요. 혹시나 해서 이야기드립니다.
|