Benutzer mit den meisten Antworten
Was benötige ich, um aus einer Webanwendung auf eine Oracle-Datenbank zuzugreifen ?

Frage
-
Hallöchen,
ich will von einem ASP.NET Webpart auf eine externe Oracle 9.2 Datenbank zugreifen. Ich habe es mit ODBCConnection versucht und als Driver "Microsoft ODBC for Oracle" angegeben (ist auch unter den Treibern in der Version 2.576.3959.00 vorhanden). Ich bekomm allerdings die Meldung "The Oracle client and networking components were not found. These components.... ". Muß ich wirklich den gesamten Client (die version 9.2 gibts bei oracle.com nicht mehr) herunterladen - was mehrere 100 MB sind - um Queries an die DB zu schicken, oder gibts da eine schlankere Lösung ?
Gruß
Niels
Antworten
-
Hallo Niels,
Muß ich wirklich den gesamten Client (die version 9.2 gibts bei oracle.com nicht mehr) herunterladen - was mehrere 100 MB sind - um Queries an die DB zu schicken, oder gibts da eine schlankere Lösung ?
siehe hierzu: http://www.oracle.com/technology/tech/windows/odpnet/index.html und http://www.oracle.com/technology/tech/windows/odpnet/faq.html#install , da ist eigentlich alles relativ gut erklärt. Ggfs. solltest Du dir auch mal das hier http://www.oracle.com/technology/tech/dotnet/tools/index.html anschauen, wenn Du mehr mit Oracle machen musst.
Die ODP.NET Installation sollte eigentlich alles beinhalten, was Du für den reinen Datenzugriff aus .NET heraus brauchst, das sind aber nicht mehrere 100 MB, eher so um 50 MB.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort markiert N_F Mittwoch, 4. November 2009 14:03
Alle Antworten
-
Hallo Niels,
Muß ich wirklich den gesamten Client (die version 9.2 gibts bei oracle.com nicht mehr) herunterladen - was mehrere 100 MB sind - um Queries an die DB zu schicken, oder gibts da eine schlankere Lösung ?
siehe hierzu: http://www.oracle.com/technology/tech/windows/odpnet/index.html und http://www.oracle.com/technology/tech/windows/odpnet/faq.html#install , da ist eigentlich alles relativ gut erklärt. Ggfs. solltest Du dir auch mal das hier http://www.oracle.com/technology/tech/dotnet/tools/index.html anschauen, wenn Du mehr mit Oracle machen musst.
Die ODP.NET Installation sollte eigentlich alles beinhalten, was Du für den reinen Datenzugriff aus .NET heraus brauchst, das sind aber nicht mehrere 100 MB, eher so um 50 MB.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort markiert N_F Mittwoch, 4. November 2009 14:03
-
Hallo Oliver,
habe mir jetzt mal den 11g Client für Win32 heruntergeladen (nur den Client, ohne Clusterzeugs, Beispiele und was es da nicht alles gibt). Welche Komponenten muß ich jetzt installieren, damit es klappt? Ich kann ja quasi alles abwählen, bis auf den "Oracle ODBC Driver 11.1.0.6.0". Würde das reichen?
Gruß
Niels
edit :
@Stefan,
danke für die Links, habe ich zu spät gesehen =)
Das mit ODP.NET hört sich sehr interessant an, werde ich mal antesten und Bescheid geben obs geklappt hat. Für eine VS Erweiterung lohnt es sich bei mir noch nicht. -
Hallo Stefan,
ich gebe Dir Recht, dass das ODP.NET Paket die beste Wahl ist. Die ODP.NET Installation beinhaltet aber auch den Client. Den ohne Oracle Client (mit dem TNS-Listener) findet keine Anwendung den Weg zum Server.
Schöne Grüße
Oliver
P.S. Das Installationspaket ist zirka 130 MB groß -
Hallo Oliver,
P.S. Das Installationspaket ist zirka 130 MB groß
der Download, den ich eben gestartet hatte (ODP.NET mit XCopy Deployment Zeugs) war ca. 49 MB. Ggfs. hast Du den mit den Visual Studio Addons, ... genommen, der ist verständlicherweise "etwas" größer :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
-
Habe jetzt mal das ODP.NET heruntergeladen und nach Anweisung in der readme installiert. Leider taucht die Referenz Oracle.DataAccess nicht in der .NET Kartei auf (übrigens, wo/wie wird bestimmt was hier auftaucht?), also mußte ich die dll händisch hinzufügen. Blöderweise kann ich nicht sagen obs funktioniert, weil die Firewall auf dem Server für mich noch nicht offen ist. Aber zumindest krieg ich jetzt Fehler vom Format "Connection Timed Out" und keine "No Oracle Client/Provider found" mehr :-)
Gruß
Niels -
On 03.11.2009 13:46, N_F wrote:
> ich will von einem ASP.NET Webpart auf eine externe Oracle 9.2
> Datenbank zugreifen. Ich habe es mit ODBCConnection versucht und als
> Driver "Microsoft ODBC for Oracle" angegeben (ist auch unter den
> Treibern in der Version 2.576.3959.00 vorhanden). Ich bekomm
> allerdings die Meldung "The Oracle client and networking components
omponents.... ". Muß ich wirklich den gesamten
> Client (die version 9.2 gibts bei oracle.com nicht mehr) herunterladen
> - was mehrere 100 MB sind - um Queries an die DB zu schicken, oder
> gibts da eine schlankere Lösung ?
Ich habe für meine Web-Anwendung den Oracle Instant Client verwendet
(http://www.oracle.com/technology/tech/oci/instantclient/index.html).
Den gibt es als ZIP-Datei zum Download (z.B. für Win32 unter
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html).Daraus
brauchst du aber nur die folgenden DLLs: orannzsbb11.dll, oci.dll,
oraocci11.dll und oraociicus11.dll.
Der Zugriff auf Oracle-Datenbank kann seit .NET 2.0 über den von
Mircosoft bereitgestellten Provider "System.Data.Oracle" erfolgen. Damit
der funktioniert braucht man eben diese DLLs.
Zugriff kann dann in .Net wie folgt aussehen:
public static bool ExecuteQuery(string sql, string connectionString)
{
string providerString = "System.Data.OracleClient";
ik erzeugen
DbProviderFactory provider =
DbProviderFactories.GetFactory(providerString);
// --- Verbindung aufbauen
DbConnection conn = provider.CreateConnection();
conn.ConnectionString = connectionString; conn.Open();
// Befehl erzeugen
DbCommand cmd = provider.CreateCommand();
cmd.CommandText = sql;
cmd.Connection = conn;
// Befehl ausführen
DbDataReader reader = cmd.ExecuteReader();
reader.Read();
conn.Close();
}
Der Connection-String sieht dabei so aus:
|
||Data Source=[servername]/[service_name];User Id=[user];Password=[pass]|
Wenn anstatt des Microsoft Providers |System.Data.OracleClient| der
Oracle-Provder |Oracle.Data.Client| verwendet werden soll/möchte wird
neben den Treibern aus dem Instant-Client noch der Oracle Data-provide
for .Net (ODP.NET)
(http://www.oracle.com/technology/tech/windows/odpnet/index.html)
racle.DataAccess.dll| und
|OraOps11w.dll| benötigt.
--
Henning Eiben
busitec GmbH
Consultant
e-mail: eiben@busitec.de
+49 (251) 13335-0 Tel
+49 (251) 13335-35 Fax
Rudolf-Diesel-Straße 59
48157 Münster
www.busitec.de
Sitz der Gesellschaft: Münster
HR B 55 75 - Amtsgericht Münster
USt-IdNr. DE 204607833 - St.Nr. 336/5704/1277
Geschäftsführer: Simon Böwer, Henning Eiben, Stefan Kühn, Martin Saalmann