red hat 9 上的 oracle9.2.0.4的 Pro*C 编译问题

red hat 9 上的 oracle9.2.0.4的 Pro*C 编译问题

我的系统是Red Hat9
数据库版本是Oracle9.2.0.4
Pro*C已经配置成功,在$ORACLE_HOME/precomp/demo/proc中可以把sample1.pc 等文件转化成功。

但是在我自己开发的程序总是提示定义:

PCC-S-02201, Encountered the symbol "HZPYTableStruct" when expecting one of the
following:

  ... auto, char, const, double, enum, float, int, long,
  ulong_varchar, OCIBFileLocator OCIBlobLocator,
  OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
  OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
  short, signed, sql_context, sql_cursor, static, struct,
  union, unsigned, utext, uvarchar, varchar, void, volatile,
  a typedef name, exec oracle, exec oracle begin, exec,
  exec sql, exec sql begin, exec sql type, exec sql var,
The symbol "enum," was substituted for "HZPYTableStruct" to continue.

HZPYTableStruct是我自己定义的一个结构,这个结构已经定义,在Window系统上使用Pro*C预编译的时候并没有错误,不知道为什么在Linux出现错误了。

如果有那位大虾知道这个问题,请不吝赐教。谢谢!!      
这个问题是这样的。

上面的这个结构定义在一个名为db.h的头文件中。而这个头文件在系统中也存在。是一个dbm用到的文件,在/usr/include中。

每次系统都自动调用那个db.h,而不使用我们的头文件中定义的。

所以总是提示错误      
楼主可以把你开发PRO C的经验给大家分享一下。先谢谢了      
林子大了!什么鸟都有      
其实我也没有什么新鲜的做法,只是使用oracle提供的预编译demo程序编的。

在$ORACLE_HOME/precomp/demo/proc有几个demo的make 文件,我就是使用他们的作的。      
如何使用?
$make -f demo_proc.mk sample1 ?

我的例子编译也不过?
但是我在oracle8.1.7上编译过的,但是oracle9i 却不行,请问如何解决?      
看看oracle自带的demo里面的make 文件,直接拿来改改就可以用