データベース接続をチェックするための簡単なpro * cプログラムを作成しました。コードは次のとおりです。セグメンテーションフォールトpro *データベース接続用コード
int main()
{
char *conn_string = "IDA/[email protected]";
int x = 10;
printf("value of x is before db connection %d\n",x);
printf(" conn_string %s \n",conn_string);
EXEC SQL CONNECT :conn_string;
EXEC SQL SELECT 1 INTO :x FROM DUAL;
printf("value of x is %d\n",x);
return 0;
}
次のコマンドは、私はプロ* Cコード
proc test_connection.pc
cc -I${ORACLE_HOME}/precomp/public -c test_connection.c
cc test_connection.o -o test_connection -L$ORACLE_HOME/lib -lclntsh
のexectuable(test_connection)を作成するために実行されると、私はtest_connection exeファイルを実行すると、出力は
value of x is before db connection 10
conn_string IDA/[email protected]
Segmentation fault
ですしかし、同じコードは別のLinuxマシンとsolarisマシンでうまく機能します。
なぜセグメンテーション違反がスローされるのですか?
まだセグメント化エラーが発生しています。コアファイルは生成されません。 SQL CONNECTの前後に印刷文を挿入しました。 SQL_CONNECTが実行される前の印刷が実行されますが、SQL CONNECT dintが実行された後に印刷されます。 SQL CONNECTに何か問題があると思います。しかし、考えていない – bhuvana
それはEXECのSQLを解釈することはできません私は思う..何が問題になる可能性がありますか? – bhuvana
はい。我々は解釈することができません。私は考えています...
オラクルのライブラリのバージョンはすべてのシステムで同じですか?バイナリに対処しているのか、earchシステム用に再コンパイルしていますか?私はすでにlibのバージョン9と11に問題がありました。 –