2

C# win アプリケーションから oracle データベースに接続する方法について読んでいますが、「壁にぶつかり」続けています。クライアント コンピュータにクライアントをインストールする必要がないように、odp.net と OCI を使用することにしましたが、動作させることができません。

私は小さなテスト アプリケーションを持っています。コードは以下に示しています。私のソリューションでは、Oracle OCI から次の dll を追加しました: oci.dll、orannzsbb11.dll、および oraociicus11.dll。それらはすべて、最終的な .exe ファイルと一緒に配置されます。

テストコード:

private static string CONNECTION_STRING =
                  "User Id=hr;Password=hr;Data Source=(DESCRIPTION=" +
                  "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))" +
                  "(CONNECT_DATA=(SID=XE)));Connect Timeout=15;";

        static void Main(string[] args)
        {
            try
            {
                using (var conn = new OracleConnection(CONNECTION_STRING))
                {
                    conn.Open();
                    Console.WriteLine("Connection is: {0}", conn.State.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

この問題はすでに using(…) ステートメントで発生しています。プログラムは動作を停止し、応答がありません。OCIを機能させるために必要な魔法は何ですか???

4

3 に答える 3

1

本格的なクライアントをインストールせずにODP.NETを使用できるようにするには、Oracle Instant Clientパッケージを使用する必要があります(完全なクライアントからライブラリをコピーすることはできません)。

于 2011-04-13T11:43:56.977 に答える
0

ここにあるOracleforODACのインストール手順をお読みください。また、一般的なセットアップの問題についても説明します。

また、ソリューションにOracle.DataAccessへの参照を含め、「Oracle.DataAccess.Clientを使用する」必要があります。接続には、tnsnamesファイルを介して解決できるOracle SIDを使用することをお勧めします(cmdプロンプトからtnspingを試してください)。

于 2011-04-13T11:16:59.637 に答える
0

通常、OCIまたは一般的なOracleデータベース製品を使用する場合は、ORACLE_HOME環境変数を定義し、Oracleインストールを指す必要があります。ライブラリの隣で、Oracleは他のいくつかのサポートファイルを使用し、ORACLE_HOMEでそれらを検索しています。通常、LD_LIBRARY_PATHはORACLE_HOME/libとして定義されます。インスタントクライアントを使用してみてください。これは、いくつかのライブラリを手動で選択するよりも優れている可能性があります。それを機能させる方法についての素晴らしい記事はここにあります:win32へのOracleinstantclientbasicとinstantclientsqlplusのインストールsqlplusに関する部分は省略できます。

そして、otnのinstance-clientページから:

インスタントクライアントのダウンロードインスタントクライアントは、インスタントクライアント用の個別のOTN開発および配布ライセンスの下で提供され、ほとんどのライセンシーが無料で本番環境にダウンロード、再配布、および展開できるようにすることに注意してください。必要に応じて、ライセンスと法務部門に説明を求めてください。Instant Clientの詳細については、InstantClientの公式サイトを参照してください。

インスタンスクライアントの再配布が許可されているようです。

于 2011-04-13T10:18:47.993 に答える