次の 9、10、11 ページによると、PRO*C/C++ 以外に C/C++「プリコンパイラ」はありません。OCI/OCCI と呼ばれる C/C++ プログラミング言語インターフェイスがありますが、技術的にはこれはプリコンパイラではありません。
このページには、「OCI プログラムはプリコンパイルされていません」と記載されています。
http://www.orafaq.com/wiki/Oracle_Call_Interfaces
これらのページには、利用可能な C/C++ コンパイラ ツールが一覧表示されています。
9I プリコンパイラ ページ:
http://docs.oracle.com/html/A97297_01/ch4_comp.htm
This page lists PRO*C/C++,
and the Non C precompilers: PRO*COBOL, PRO*FORTRAN,
SQL for ADA, the OCI
10G プリコンパイラ ページ: 部品番号 B25416-02 を参照 (このページには、まだリストされていない他の C/C++ プリコンパイラはリストされていません)
9I から 11 のプリコンパイラ ノート:
https://blogs.oracle.com/db/entry/master_note_for_precompilers_oci_and_occi
(This page Does not list any other C/C++ precompilers not
already listed)
Tom OCI/PRO*C の比較を尋ねる:
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:999630650601
This page shows an example that has an SQL statement with
invalid syntax being passed to OCI, through OCIStmtPrepare()
and the compile does not error. This means that
at the time of the OCI compile a complete syntax check
of the SQL statement is not done which is
consistent with what I have seen.
このページには、OCI がプリコンパイルを行わないことを意味する「OCI および Precompilers Support for (..)」と記載されています。
http://www.oracle.com/technetwork/database/features/oci/index.html
あなたが持っているコードにはSQLが埋め込まれているようです。コンパイル時にこのコードの有効性をチェックするには、データ ディクショナリにアクセスできるプリコンパイラが必要です (PRO*C は、あなたが持っているものとは異なる構文でアクセスできることを知っていますが、C/C++ 用にリストされている他の ORACLE サポート ツールはどれもありません)。上記のページはそうです)。