クライアント管理ツールとVisual Studio 2008をラップトップにダウンロードしてインストールすることにより、C#(Visual Studio 2008)からOracleデータベース(10g)に正常に接続しました。
Oracle Clientツールのインストールフットプリントは200Mbを超え、非常に長くかかりました。
最小実行可能フットプリントが何であるかを誰もが知っていますか?単一のDLLとregisterコマンドであることを望んでいますが、Oracleホームをインストールし、さまざまな環境変数を設定する必要があると感じています。
コードでOracle.DataAccessを使用しています。
Oracleデータベースに接続するには、Oracleクライアントが必要です。最も簡単な方法は、 Oracle Data Access Components をインストールすることです。
フットプリントを最小限に抑えるには、次のことをお勧めします。
sales-server:1521/sales.us.acme.com
。これは約19Mb(v10)です。
複数のアプリケーション間でこのフォルダーを共有する必要がない場合は、上記のDLLをアプリケーションバイナリと共に出荷し、PATH設定手順をスキップすることもできます。
Oracleプロバイダー(Oracle.DataAccess)を絶対に使用する必要がある場合は、次のものが必要です。
この最新の構成はテストしていないことに注意してください...
2014年現在、OPD.NETマネージドドライバーは最小のフットプリントです。
以下は、以前の(時代遅れの)回答が示唆した非管理バージョンとのコード使用比較です: http://docs.Oracle.com/cd/E51173_01/win.122/e17732/intro005.htm#ODPNT148
これらのdllをダウンロードして、プロジェクトのOracle.ManagedDataAccess.dll
を参照する必要があります。 ODP.NET、マネージドドライバーXcopyバージョンのみ
以下は、リリースと一緒にパッケージ化する必要がある典型的なフットプリントです。
Oracle.ManagedDataAccess.dll
Oracle.ManagedDataAccessDTC.dll
すべて一緒に、whopping.Net 4.0の場合は6.4 MB。
ODAC 11.2.0.2.1を使用して、Windows XP上で上記のPandicusによって提案された方法を使用します。手順は次のとおりです。
using Oracle.DataAccess.Client;
を追加すると、OracleConnection
、OracleCommand
、OracleDataReader
などの型を使用してOracleにアクセスできるようになります。データベース。詳細については class documentation をご覧ください。 tnsnames.ora構成ファイルを使用する必要はありません。 接続文字列 のみを適切に設定する必要があります。この方法により、Oracleの5つの再配布可能ファイルを使用してODP.netに接続できます。
Chrisのブログエントリ:新しいODP.Netを使用して、簡単な展開でC#からOracleにアクセスする
編集:ブログがすべてダウンした場合の簡単な要約を以下に示します...
バージョン番号の競合を避けるために、同じODP.Net/ODACディストリビューションからこれらのDLLをすべて取得し、それらをすべてEXEと同じフォルダーに入れてください。
DevArt http://www.devart.com/ 、以前のCoreLab(crlab.com)は、純粋なC#Oracleクライアントを提供します。これは単一のdllであり、正常に機能します。
Oracle 11.2.0.4.の更新を以下に示します。 Windows 7でSystem.Data.OracleClient
を使用して、次の手順で成功しました。
1。ダウンロードインスタントクライアントパッケージ-Basic Lite: Windows 32-Bit または 64-Bit 。
2。次のファイルをシステムパス内の場所にコピーします。
2ビット
1,036,288 2013-10-11 oci.dll
348,160 2013-10-11 ociw32.dll
1,290,240 2013-09-21 orannzsbb11.dll
562,688 2013-10-11 oraocci11.dll
36,286,464 2013-10-11 oraociicus11.dll
64ビット
691,712 2013-10-09 oci.dll
482,304 2013-10-09 ociw32.dll
1,603,072 2013-09-10 orannzsbb11.dll
1,235,456 2013-10-09 oraocci11.dll
45,935,104 2013-10-09 oraociicus11.dll
。tnsnames.ora の必要性を省く接続文字列を構築します。
(以下のテストプログラムの例を参照してください。)
4。この最小限のC#プログラムを実行して、インストールをテストします。
using System;
using System.Data;
using System.Data.OracleClient;
class TestOracleInstantClient
{
static public void Main(string[] args)
{
const string Host = "yourhost.yourdomain.com";
const string serviceName = "yourservice.yourdomain.com";
const string userId = "foo";
const string password = "bar";
var conn = new OracleConnection();
// Construct a connection string using Method 1 or 2.
conn.ConnectionString =
GetConnectionStringMethod1(Host, serviceName, userId, password);
try
{
conn.Open();
Console.WriteLine("Connection succeeded.");
// Do something with the connection.
conn.Close();
}
catch (Exception e)
{
Console.WriteLine("Connection failed: " + e.Message);
}
}
static private string GetConnectionStringMethod1(
string Host,
string serviceName,
string userId,
string password
)
{
string format =
"SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
"(Host={0})(PORT=1521))" +
"(CONNECT_DATA=(SERVER=DEDICATED)" +
"(SERVICE_NAME={1})));" +
"uid={2};" +
"pwd={3};"; // assumes port is 1521 (the default)
return String.Format(format, Host, serviceName, userId, password);
}
static private string GetConnectionStringMethod2(
string Host,
string serviceName,
string userId,
string password
)
{
string format =
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
"(Host={0})(PORT=1521))" +
"(CONNECT_DATA=(SERVER=DEDICATED)" +
"(SERVICE_NAME={1})));" +
"User Id={2};" +
"Password={3};"; // assumes port is 1521 (the default)
return String.Format(format, Host, serviceName, userId, password);
}
}
最終ヒント:エラーが発生した場合、「System.Data.OracleClientにはOracleクライアントソフトウェアバージョン8.1.7が必要です」、 この質問 。
ODAC xcopyを使用すると、約45MBを節約できます。 http://www.Oracle.com/technology/software/tech/windows/odpnet/index.html
Oracleフォーラムのこの投稿も非常に便利だと感じました。
注:ADO.NETチームはSystem.Data.OracleClientを非推奨にしているため、将来のプロジェクトではODP.NETを使用する必要があります
再生:
次の環境変数を設定します。
- pATHに他のOracleディレクトリがないことを確認してください
- インスタントクライアントを指すように[〜#〜] path [〜#〜]を設定します
- TNS_ADMINがtnsnames.oraファイルのある場所を指すように設定します
- NLS_LANGを設定します
- Oracle_HOMEをインスタントクライアントに設定します
私にとっては、NLS_LANGを
http://download-east.Oracle.com/docs/html/A95493_01/gblsupp.htm#634282
インスタントクライアントにsqlplusアドオンを使用して、これが正しいクライアントソフトウェアを使用していることを確認しました。
私の場合、SET NLS_LANG = AMERICAN_AMERICA.WE8MSWIN1252を設定します
注:変更を行う前に、Oracleレジストリキー(存在する場合)をバックアップし、環境変数の文字列をバックアップします。