Ich muss ein Werkzeug in C # entwickeln, das einige Daten von einer Oracle DB abruft. Da unsere IT-Abteilung Probleme bei der Installation des Oracle-Clients hat, möchte ich in der Lage sein, eine Verbindung zur Datenbank herzustellen, ohne dass der Client installiert ist. Die Idee ist, einfach eine zusätzliche Bibliothek zusammen mit der App zu installieren (und vielleicht zu registrieren).
Welche Alternativen zum Oracle-Client gibt es und welche Vor- und Nachteile haben sie?
Dies ist für eine kleine Anwendung (1 Formular, 2 oder 3 Abfragen, das Ergebnis wird in einem DataGrid angezeigt, wahrscheinlich nicht mehr als 10-20 Datensätze), aber ich bin auch an Skalierbarkeitsproblemen interessiert, da wir möglicherweise auch verschieben weg vom Oracle-Client mit größeren Zukunftsprojekten.
Natürlich wäre eine Freeware-Lösung nett, aber wir sind nicht darauf beschränkt.
Es gibt ein paar verschiedene Varianten des Oracle ODP.Net-Treibers . Welche Version möchten Sie verwenden?
Es klingt, als ob Sie die Oracle 11g ODAC 11.1.0.6.21 mit Xcopy Deployment möchten, mit der Sie den Oracle Instant Client und den ODP.Net-Treiber bereitstellen können, indem Sie nur einige DLLs kopieren und registrieren. Das erfordert keine vollständige Oracle-Client-Installation.
Ihre Aufgabe kann ohne Software von Drittanbietern gelöst werden:
Ermöglichen Sie Ihrer Anwendung, ohne die Verwendung von TNSNAMES.ORA eine Verbindung herzustellen. Um dies zu tun, müssen Sie den Verbindungsdeskriptor in die Verbindungszeichenfolge aufnehmen:
"Benutzer-ID = scott; Passwort = Tiger; Datenquelle=" + "(BESCHREIBUNG = (ADRESSE = (PROTOCOL = tcp)" + "(HOST = Sales-Server) (PORT = 1521)) (CONNECT_DATA=" + "(SERVICE_NAME = sales.us.acme.com)))"
Da Sie den Verbindungsdeskriptor in die Verbindungszeichenfolge aufnehmen, ist der Thin Client in den Zielcomputern nicht erforderlich.
Glückliche Bereitstellung.
Der Enterprise-Bibliothek-Client System.Data.OracleClient ist eine praktikable Alternative zum ODP.NET-Provider von Oracle. Es gibt jedoch einige Einschränkungen, die Sie kennen sollten. Die Verwendung des Microsoft-Clients macht es extrem schwierig, mit beliebigen großen Objekten zu arbeiten, unabhängig davon, ob es sich um XML-Zeichenfolgen, CLOBs, LOBs oder BLOBs handelt. Auch die Oracle XmlType-Spalte wird nicht unterstützt und muss an einen CLOB übergeben werden, um in den OracleClient zurückgegeben zu werden.
Tags und Links c# oracle database-connection