2

Oracle 11.2 の Express Edition を使用して、Fedora 64 ビット OS で Oracle pro*c デモ プログラムを動作させようとしています。デモ プログラムの make ファイルを実行すると、Oracle プリコンパイラで次のエラーが発生し、異常終了します。

PCC-F-NOERRFILE、エラー メッセージ ファイルを開けません、ファシリティ PR2

プリコンパイラの完全な出力は次のとおりです。

$ make -f demo_proc_ic.mk
rm -rf SunWS_cachea
rm -rf ../../libclntsh.so
rm -rf procdemo procdemo.o procdemo.c procdemo.lis
make -f demo_proc_ic.mk build OBJS=procdemo.o EXE=procdemo
make[1]: Entering directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
rm -rf SunWS_cachea
rm -rf ../../libclntsh.so
make -f demo_proc_ic.mk PROCFLAGS="" PCCSRC=procdemo I_SYM=include= pc1
make[2]: Entering directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
../proc  iname=procdemo include=. sys_include=\(../include,/usr/include,/usr/lib/gcc-   lib/x86_64-redhat-linux/3.2.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include\)

PCC-F-NOERRFILE, unable to open error message file, facility PR2
make[2]: *** [pc1] Error 1
make[2]: Leaving directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
make[1]: *** [procdemo.o] Error 2
make[1]: Leaving directory `/home/mvsagar/oracle/instantclient_11_2/sdk/demo'
make: *** [procdemo] Error 2

そのため、XEは機能します。sqlplus を使用してテーブルを作成できます。64 ビット Linux 用の Instant Client Basic およびプリコンパイラ zip をダウンロードしてインストールしました。

他に何かインストールする必要があるかどうか、何か考えはありますか? または私がしなければならない他の設定はありますか?

4

1 に答える 1

4

最後に、 ORACLE_HOMEおよびLD_LIBRARY_PATH環境変数の値を変更して問題を解決しました。ググったときに見つけたのと同じ問題を解決する例がありましたが、なぜ環境変数を変更しなければならなかったのかは明確ではありませんでした。

パスにOracle-xeをインストールしました

"/u01/app/oracle/product/11.2.0/xe" 

root ユーザーとして。したがって、 ORACLE_HOMEはこのパスに設定されました。pro*c/c++ クライアント インストール ファイルを別のディレクトリにダウンロードしました

"/home/mvsagar/oracle/instantclient_11_2" 

XE のインストールを妨げないようにします。ルート権限を必要としないため、自分のユーザー名でアカウントにログインしてからインストールしました。自分のユーザー名でコンパイルしている間、ORACLE_HOME を XE インストール パスに保持しました。しかし、pro*C/C では、ファイルがインストールされたパスにリセットする必要があるようです。したがって、次のようにORACLE_HOMELD_LIBRARY_PATHを「/home/mvsagar/oracle/instantclient_11_2」に変更しました。

ORACLE_HOME=/home/mvsagar/oracle/instantclient_11_2
export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

この後、エラーが消えました!ORACLE_HOMEを設定するだけでは不十分です。LD_LIBRARY_PATHも設定する必要があります。

もちろん、解決する必要がある他のコンパイラの問題がいくつかあります。

ブログからこのヒントを得ましたhttp://oradim.blogspot.in/2009/09/getting-started-with-oracle-proc-on.html

于 2013-10-25T03:56:23.277 に答える