修改$ORACLE_HOME/precomp/admin/pcscfg.cfg,
sys_include=(/ade/aime_rdbms_9819/oracle/precomp/public,/usr/include,
/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include,/usr/lib/gcc-lib/i386-redhat-lin
ux/3.2.3/include,/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include,
/usr/lib/gcc/i386-redhat-linux/4.1.1/include)
ltype=short
sys_include值前面的可以删去,暂且不管,只在后面附加 /usr/lib/gcc/i386-redhat-linux/4.1.1/include,其中,此值根据gcc安装路径而定。
问题描述:
编译proc文件时报错
gensh.c:615: 错误:break 语句不在循环或开关语句内
"P8404001.c",line 3176.32:1506-056 (S) Break statement cannot be placed outside a while,do,for,or switch statement.
解决办法,
查看pc文件,发现有EXEC SQL WHENEVER NOT FOUND do break;语句,注释掉,换成:
if((sqlca.sqlcode==1403)||sqlca.sqlcode==100)
break;
问题解决。
2)用gcc编译为目标文件
3)用gcc连接,注意后面库的路径,,每次就是这里的问题
gcc -o main main.o dbop.o -L$ORACLE_HOME/lib32 -lclntsh
还遇到include方面的问题:用以下关键词谷歌以下,应该就能找到一遍文章,里面有
unsigned char liId[25];
EXEC SQL END DECLARE SECTION;
EXEC SQL SELECT LIID INTO :liId FROM MONITOR_OBJ_INFO;
当LIID有多长的数据,liId数组最长保存24个表中的字...
(1)若在Linux下执行proc出错如下:
proc: error while loading shared libraries:libclntsh.so.11.1: cannot open shared object file: No such file or directory
需要设置:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib ...