Hier ist ein Update für Oracle 11.2.0.4.0 . Ich hatte Erfolg mit dem folgenden Verfahren bei Windows 7 mit System.Data.OracleClient
.
1. Herunterladen Instant Client-Paket - Basic Lite : Windows 32-Bit o 64-Bit .
2. Kopieren Sie die folgenden Dateien an einen Ort in Ihrem Systempfad:
32-Bit
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-Bit
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
3. Konstruieren Sie eine Verbindungszeichenfolge, die entfällt die Notwendigkeit für tnsnames.ora .
(Siehe Beispiele im Testprogramm unten).
4. Führen Sie dieses minimale C#-Programm aus, um Ihre Installation zu testen:
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);
}
}
Letzter Tipp: Wenn Sie die Fehlermeldung "System.Data.OracleClient erfordert Oracle Client Software Version 8.1.7" siehe diese Frage .
22 Stimmen
Als Oracle-Neuling war es auch für mich ein Alptraum, alle benötigten Komponenten und Bibliotheken zu finden und zu installieren. Ich kann nicht verstehen, wie Oracle so einen "mittelmäßigen" Support für .NET-Entwickler nicht anbieten konnte...
0 Stimmen
@ecoe Danke, dass Sie diese Frage erneut aufgreifen. Deine Antwort stackoverflow.com/a/26469797/6910 scheint bisher der kleinste Fußabdruck zu sein.
4 Stimmen
@splattne: Fühlen Sie sich nicht schlecht, Oracle stellt allen Entwicklern und Kunden mittelmäßige Software zur Verfügung.