データベースへの接続に使用する完全なコードを示していませんが、コメントから別の回答まで、OLEDBを使用しているようです。特にデータソースに対して128文字というやや恣意的な制限があると思われる場合は、使用を避けます。
また、別の回答者が推奨するように、Oracleクライアントをインストールする必要がないことも指摘しておきます。 「インスタント」クライアントの経験はあまりありませんが、完全なクライアントは大量のダウンロードであり、C#プログラムをOracleに接続するためだけに必要なわけではありません。
代わりに、Oracle ManagedDataAccessライブラリを使用できます。これは、NuGetを使用してインストールできます。これを行うには:
- [ツール]>[ライブラリパッケージマネージャー]>[パッケージマネージャーコンソール]に移動します
- [デフォルトプロジェクト]ドロップダウンリストで正しいプロジェクトが選択されていることを確認してください
-
入力
Install-Package odp.net.managed
これにより、NuGetからライブラリをダウンロードし、プロジェクトの参照にOracle.ManagedDataAccessを追加する必要があります。
次に、using
を追加すると Oracle.ManagedDataAccess.Client
のディレクティブ 、次のコードはOracleデータベースと通信する必要があります:
string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>)));User Id=<user>;Password=<password>";
Console.WriteLine("Connection string has length " + connStr.Length);
using (var connection = new OracleConnection() { ConnectionString = connStr })
{
connection.Open();
OracleCommand command = new OracleCommand("SELECT * FROM DUAL", connection);
using (OracleDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
}
}