Laden...

Kommunizieren mit Oracle

Erstellt von mosspower vor 15 Jahren Letzter Beitrag vor 15 Jahren 16.872 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren
Kommunizieren mit Oracle

verwendetes Datenbanksystem: Oracle 9
Hallo Kollegen,

ich habe jetzt schon mehrere Stunden damit verbracht, eine Lösung zu finden um einen "stink normalen Select" auf eine Oracle-Datenbank mit C# durchzuführen. Ich komme da einfach nicht weiter. Ich will nicht den Client installieren. Ich bekomme da keine einheitlichen Informationen. Gibt es denn sowas wie bei Java, wo ein ganz normales JAR-File als Client ausreicht. Leider komme ich hier mit der Suchfunktion auch nicht weiter. Was soll ich machen?

Mein Connectionstring (Java - JDBC) lautet: jdbc:oracle:thin:user/password@URL : PORT : SID

G
497 Beiträge seit 2006
vor 15 Jahren

du brauchst die Oracle Data Access Components (ODAC), die den OleDb-Treiber und einen managed-Treiber enthalten. Siehe: http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

.Vielen Dank - ich schaue da gleich mal rein ...
.
.
OK, sorry, ich habe da keinerlei Erfahrung.

Was muss ich da alles installieren?

Es gibt folgende Auswahlmöglichkeiten
Oracle Services For Microsoft Transaction Server
Oracle ODBC Driver
Oracle Provider for OLE DB
Oracle Objects for OLE
Oracle Data Provider for .NET

????

Ich habe jetzt mal Oracle Data Provider for .NET installiert. Was muss ich jetzt machen, bzw. wo bekomme ich nähere Informationen.

Hatte leider bisher mit Oracle nie etwas zu tun, wenn, dann nur mit Java und hier nur als Client - Datenbank war immer schon eingerichtet.

Gruß

M
35 Beiträge seit 2008
vor 15 Jahren

du brauchst eine connection, ein datareader und was zum anzeigen (z.b. datagridview). für die connection und den datareader benutzen wir odbc (wir benutzen mysql-server). der connection weißt du deinen connectionstring zu.
dem datareader weißt du dann noch die sql-query zu und kannst schon mit datareader.read() auf den ersten datensatz zugreifen. ich hab das jetzt fix aus dem kopf geschrieben, deswegen kann es sein, das ich einen schritt vergessen hab.

eine gute anleitung gibts unter
http://www.seven-c.de/files/DatenbankenHowto.htm

mfg stephan

edit: wenn du visual studio benutzt, musst du sonst nix installieren. die kommunikation erfolgt mittels einem datenbanktreiber (bsp. odbc) den .net und auch oracle beherscht.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

Ich habe mir jetzt den Instant Client gezogen. Hier habe ich die vier DLLs in mein Startup-Path copiert (oraociei11.dll, oci.dll, orannzsbb11.dll, oracci11.dll)

... dann im Code ...

OracleConnection oracleConnection = new OracleConnection();

        string CONNECTION_STRING =
          "User Id=bla;Password=bla;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.13)(PORT=1521))(CONNECT_DATA=(SID=stillmms)));";

        oracleConnection.ConnectionString = CONNECTION_STRING;
        oracleConnection.Open();

        oracleConnection.Close();

Jetzt bekomme ich die Fehlermeldung:

ORA-12705: Cannot access NLS data files or invalid environment specified

Was bedeutet dies? Ich möchte auf eine 9i-Datenbank, bzw. muss ich noch etwas lokal einstellen?

M
35 Beiträge seit 2008
vor 15 Jahren

du musst nichts installieren. ließ mal meine antwort und schau dir mal den link an. eine datanbank connection ist eine der einfacheren sachen beim programmieren und ist mit 5-10 zeilen code zu schreiben. du denkst wohl etwas zu kompliziert.

mfg stephan

M
35 Beiträge seit 2008
vor 15 Jahren

hier ein Beispiel aus der MSDN:


private static void ReadData(string connectionString)
{
    string queryString = "SELECT OrderID, CustomerID FROM Orders";
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
        OracleCommand command = new OracleCommand(queryString, connection);
        connection.Open();
        OracleDataReader reader;
        reader = command.ExecuteReader();

        // Always call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
        }

        // Always call Close when done reading.
        reader.Close();
    }
}

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

aber da brauche ich doch den Client, oder etwa nicht? Bei einer ODBC-Verbindung brauche ich doch lokal (oder überall, wo die Anwendung laufen soll) einen Client, das ist doch mein Problem. Bei SQL-Server oder MySQL ist das ja kein Problem, bei Oracle jedoch schon - leider

M
35 Beiträge seit 2008
vor 15 Jahren

hallo mosspower,

du brauchst keinen client sondern einen server. der client ist doch das programm das du schreiben willst. oder hab ich deine problemstellung falsch verstanden?

das von mir gepostete Beispiel geht davon aus, das bei dir im netzwerk ein oracle server läuft. sonst nix. auf den server greifst du mittels odbc oder ähnlichem zu. das kann visual studio mit .net 2.0 (oder früher) ohne installation irgendwelcher zusatzsoftware. der oracle-server kann das auch.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

Ich habe irgendwie das Gefühl, dass wir aneinander vorbei reden.

Gut, nehmen wir das Beispiel ODBC her ... bei jeder x-beliebigen Datenbank (SQL-Server, Acces, mysql) kann ich einen ODBC-Eintrag erstellen und dann auf die Datenbank zugreifen, jedoch geht das bei Oracle nicht so einfach - hier müssen dann Minimalinstallationen (lokal) durchgeführt werden um überhaupt an eine Oracle-Datenbank (im Netz) zu kommen - zumindest habe ich das bisher so verstanden. Oder habe ich das jetzt völlig falsch verstanden. Wenn das so einfach ist, was wähle ich denn dan aus, wenn ich eine neue ODBC-Verbindung erstellen will?

M
35 Beiträge seit 2008
vor 15 Jahren

ich habe selbst noch nicht mit oracle gearbeitet, jedoch hat man bei meinem derzeitigem arbeitgeber früher mal oracle benutzt und dort gab es keine minimalinstallationen zum zugriff auf die db. versuchs doch einfach mal mit dem obigen Beispiel. das sind doch nur paar zeilen und dann weißt du bescheid. den connectionstring hast du doch schon gepostet. das ist alles was du wissen musst.

wenn es hier um besonderheiten des oracle-servers geht, dann kann ich nicht helfen, dann muss jemand anderes herhalten.

mfg stephan

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

OK, vielen Dank für Deine Ausführungen. Ich gehe jetzt einfach mal davon aus, dass Du Recht hast. Ich bekomme nun die Fehlermeldung ...

ORA-12705: Cannot access NLS data files or invalid environment specified

jetzt muss ich da wohl ein bißchen "rumsuchen", an was das liegt.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

Ich habe jetzt lokal den Client installiert und eine ODBC-Verbindung (ja, ODBC) eingestellt, mit dem Namen stillmms, das funktioniert auch (Test-Button) ... wie kann ich nun im Quellcode an diese Verbindung rankommen ... ich kriege das einfach nicht gebacken:

OdbcConnection connectin = new OdbcConnection("?????");

Ich habe schon allerhand ausprobiert und war natürlich auch schon auf http://www.connectionstrings.com

Danke für eure Hilfe schon einmal im Voraus

M
35 Beiträge seit 2008
vor 15 Jahren

bei oracle ist das wohl doch nicht so einfach. hab grade folgendes in der hilfe zum VS entdeckt:

Zitat:
Der .NET Framework-Datenanbieter für Oracle ermöglicht über die OCI (Oracle Call Interface), die Bestandteil der Oracle Client-Software ist, den Zugriff auf eine Oracle-Datenbank. Die Funktionalität des Datenanbieters ist an die der .NET Framework-Datenanbieter für SQL Server, OLE DB und ODBC angeglichen.

link in der msdn:
http://msdn.microsoft.com/de-de/library/77d8yct7.aspx

tut mir leid dich auf die falsche fährte geschickt zu haben

lg stephan

edit: oops, du warst schneller. dieser beitrag ist zeitlich vor dem vorgänger einzuordnen

1.200 Beiträge seit 2007
vor 15 Jahren

bei oracle ist das wohl doch nicht so einfach. hab grade folgendes in der hilfe zum VS entdeckt:

Zitat:
Der .NET Framework-Datenanbieter für Oracle ermöglicht über die OCI (Oracle Call Interface), die Bestandteil der Oracle Client-Software ist, den Zugriff auf eine Oracle-Datenbank. Die Funktionalität des Datenanbieters ist an die der .NET Framework-Datenanbieter für SQL Server, OLE DB und ODBC angeglichen.

link in der msdn:

>

tut mir leid dich auf die falsche fährte geschickt zu haben

lg stephan

edit: oops, du warst schneller. dieser beitrag ist zeitlich vor dem vorgänger einzuordnen

Und du redest hier die ganze Zeit Schmarrn, denn man braucht für fast jedes RDBMS auch einen ODBC Treiber, sonst geht da nicht viel. Abgesehen davon, dass ODBC veraltet ist und ich immer dazu raten würde einen richtigen Provider einzusetzen, sonst stößt man später auf böse Überraschungen, Seiteneffekte oder Features die mit ODBC nicht funktionieren.

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

3.825 Beiträge seit 2006
vor 15 Jahren

Hallo mosspower ,

schau mal hier :

http://www.seven-c.de/files/DatenbankenHowTo.htm

Wenn Du dann noch Fragen hast melde Dich.

Grüße Bernd

PS.: Vergiss bitte alles mit ODBC

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
35 Beiträge seit 2008
vor 15 Jahren

entschuldigt hab ich mich schon, odbc war nurn beispiel und den link hab ich oben auch schon gepostet. mfg

U
1 Beiträge seit 2008
vor 15 Jahren
Alternativen

Da hast Du ja schon ganz schön nützliche Tips bekommen!

So einfach wie in Java kann man mit .NET glaub nicht auf Oracle zugreifen. Es gibt aber mehrere Provider:

Microsoft
Oracle
Datadirect http://www.datadirect.com
devart http://www.devart.com/
Mono

Bei devart scheint es einen thin betriebsmodus zu geben für den man keinen OracleClient installiert haben muss. Das kostet der Provider halt was.
Problem bei den Thin drivern ist, dass das Oracle Netzwerkprotokoll im Unterschied zur OCI Schnittstelle nicht von Oracle dokumentiert und supported ist (wie ist das eigentlich bei IBMs DRDA?). D.h. wenn sich mit Oracle 12 was ändert (unwahrscheinlich aber möglich) steht man u.U. im Regen, selbst wenn man Oracles Serverlizenzen bezahlt hat.

Man kann per p/invoke oder mittels managed c++ auch direkt mit OCI reden. Auch hierfür muss der OracleClient installiert sein allerdings bekommt man vielleicht ein paar Features früher wie sie wenn überhaupt auch von ODP.NET unterstützt werden. MONO ist dafür vielleicht eine Inspiration, ist ja OpenSource. Die OCI Dokumentation ist auch nicht ganz schlecht.

Ob man wohl den Thin Java Treiber von c# aus irgenwie nutzen kann?

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren

Nochmals vielen Dank für eure Tips - ich glaube ich habe da einen 3/4 Tag verbraten, nur wegen dem Oracle. Problem war, dass ich vorher den DBVis installiert hatte mit dem JDBC-Treiber (jar) ... ist ratz fatz gegangen wie immer und dann kam C# dran ... ich habe da nix gefunden bis ich letztendlich völlig generft eine ODBC (ich brauche nur zwei Selects) eingebaut hatte - die ist dann auch nicht gelaufen, weil ich beim Oracle-Client das Passwort bei der Installation für den Dienst falsch eingegeben habe - aber die ODBC-verbindung ist gelaufen, nach Testbutton 8o .. d.h., wenn ich auf die referenziert hatte, dann ging es aus dem Programm nicht aber über ODBC mit dem Button Test Connection .. war wirklich verrückt - naja, jetzt wieder schnell zürück zu SQL-Server 🙂 ... und danke nochmal für eure Antworten.

87 Beiträge seit 2006
vor 15 Jahren

hallo,
also ich arbeite recht viel mit C# und oracle. funzt auch alles prima soweit.

die tatsache das man aber den Oracle-Client installieren muss, damit die verbindung zur DB aufgebaut werden kann ist mehr als nur lästig.

wenn man den Oracle-Client nicht installiert bekommt man sowas


---------------------------
Fehler: Exception
---------------------------
System.Data.OracleClient erfordert Version 8.1.7 oder höher der Oracle-Clientsoftware.

Methode: Int32 DetermineClientVersion()

StackTrace:
   bei System.Data.OracleClient.OCI.DetermineClientVersion()

   bei System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)

   bei System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)

   bei System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)

   bei System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

   bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

   bei System.Data.OracleClient.OracleConnection.Open()

---------------------------
OK   
---------------------------

eine möglichkeit den client nicht zu installieren und einfach ein paar DLLs mit in das prog-verz zulegen würde ich auch sehr schön finden.

Ich habe mir jetzt den Instant Client gezogen. Hier habe ich die vier DLLs in mein Startup-Path copiert (oraociei11.dll, oci.dll, orannzsbb11.dll, oracci11.dll)

das wollte ich mal probieren aber mir fehlt die orannzsbb11.dll in dem von mir vor 2h oder so herruntergeladenem Instant Client (instantclient-basic-win32-11.1.0.6.0.zip). so kommt noch immer der selbe fehler wie oben.

wenn ich dann die mfc71.dll, msvcr71.dll und die ociw32.dll mit rein packe erhallte ich wie es scheint schon mal eine funktionstüchtigen OracleClient der mir folgende meldung um die ohren haut:


---------------------------
Fehler: OracleException
---------------------------
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA


Methode: Void Check(System.Data.OracleClient.OciErrorHandle, Int32)

StackTrace:
   bei System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc)

   bei System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)

   bei System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)

   bei System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)

   bei System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

   bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

   bei System.Data.OracleClient.OracleConnection.Open()

---------------------------
OK   
---------------------------

also gehe ich mal davon aus das was mit meinem Con-String nich mehr stimmt.

das is auch auch soweit nachvollziehbar denn im falle eine client-installation muss dieser noch konfiguriert werden. es gibt einen s.g. "Oracle Net Manager" in dem dann lokal ein "Dienst" angelegt wird. In diesem wird dann zb die "SID" (bzw "Service-Name"), das protkoll (zB: TCP/IP), die eigentliche IP (bzw. ein name der per DNS aufzulösen ist) und eine port-nr (standart mässig die 1521) eingetragen wird. das ganze muss zum "lisener" des eigentlichen servers passen (dieser wird ähnlich dem dienst, auf den rechner wo sich die DB befindet, eingerichtet).

nun is die frage wie muss mein connection string ausschaun damit ich ohne die gerade oben beschriebene einrichterei auf meine DB rauf komme.

derzeitiger aufbau:


"Server=<SID>;Uid=<username>;Pwd=<passwort>"

[...]

  
[...]  
    string CONNECTION_STRING = "User Id=bla;Password=bla;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.13)(PORT=1521))(CONNECT_DATA=(SID=stillmms)));";  
[...]  
  

[...]

das werde ich mal ausprobieren und mich wieder melden.

Fragen:

  • Kenn jmd einen weg kennt die ollen DLLs wegzulassen?
  • die oraociei11.dll is ca 104MB groß? warum is die so riesig? das bläht das C#-prog auf wie nix anders

für sonstige anmerkungen die licht ins dunkel bringen würde ich mich freuen.

MfG

Tilton

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

87 Beiträge seit 2006
vor 15 Jahren
con-string

Hallo noch mal,

ich hab das jetzt mit dem andern con-string mal versucht, funzt prima!


"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<IP oder name>)(PORT=1521))(CONNECT_DATA=(SID=<SID>)));Uid=<username>;Pwd=<passwort>"

nur diese risigen DLLs sind noch immer unangenehm.

MfG

Tilton

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

1.200 Beiträge seit 2007
vor 15 Jahren

Du hast das falsche Package geladen. Da gibts mit Sicherheit keine einzige so große dll.

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

Nimm die Basic Lite Version.

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

87 Beiträge seit 2006
vor 15 Jahren
basic lite

@GMLOD: danke für den tipp, aber
a) is das auch nich sehr viel kleiner, alle DLLs im basic lite ca. 30,9MB
b) bekomme ich dann folgende fehlermeldung


---------------------------
Fehler: OracleException
---------------------------
ORA-12737: Instant Client Light: unsupported server character set WE8ISO8859P15

Methode: Void Check(System.Data.OracleClient.OciErrorHandle, Int32)

StackTrace:
   bei System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc)

   bei System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)

   bei System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)

   bei System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)

   bei System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)

   bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

   bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

   bei System.Data.OracleClient.OracleConnection.Open()

--------------------------
OK   
---------------------------

die codierung kann ich aber nicht einfach ändern, da noch andere recht alte anwendungen diese DB so benutzen wie sie is und diese unterkeinen umständen zu stöhren sind.
bin mir nich mal sicher ob das in einer schon seit 2005 produktiven DB überhaupt geht und ohne risko von datenverlust oder inkompalitäten zu eben diesen alten progs.
(never change a runnig system!! 😉 )

Fazit:
basic lite is keine alternative für meine zwecke

EDIT: das ganze is ganze is halt nur bedrückened wenn man sich die JDBC jar mal anschaut, die is ca 1,5 MB groß und kann (soweit ich weis) alles.

gehört zwar nich wirklich hier her, aber kann man java sachen überhaupt und in dem falle die JDBC jar irgendwie mit C# unter einen hut bringen??

MfG

Tilton

PS: die DB is eine 9.2i auf einem Windows Server 2003 SE SP2

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra

1.200 Beiträge seit 2007
vor 15 Jahren

Dann hol dir nicht die Light Version. Das sind auch keine 104MB. Du brauchst auch nicht alles, was da drin ist, denke ich.

Jedenfalls hast du definitiv die falsche Version oder du hast eine ältere vollständige Clientinstalltion nicht sauber deinstalliert und deswegen die falschen DLLs. Da ist nichts 104MB groß.

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

87 Beiträge seit 2006
vor 15 Jahren

Hallo,

Dann hol dir nicht die Light Version. Das sind auch keine 104MB. Du brauchst auch nicht alles, was da drin ist, denke ich.

Jedenfalls hast du definitiv die falsche Version oder du hast eine ältere vollständige Clientinstalltion nicht sauber deinstalliert und deswegen die falschen DLLs. Da ist nichts 104MB groß.

  1. große dateien die es gar nich gibt

[...] Da ist nichts 104MB groß.

Oracle "Instant Client Downloads for Microsoft Windows (32-bit)"


>

folgendes sieht man dort:


Version 11.1.0.6.0
	Instant Client Package - Basic:		instantclient-basic-win32-11.1.0.6.0.zip (43,316,697 bytes)
	Instant Client Package - Basic Lite:	instantclient-basiclite-win32-11.1.0.6.0.zip (17,012,357 bytes)
[...]

Version 10.2.0.4
	Instant Client Package - Basic:		instantclient-basic-win32-10.2.0.4.zip (34,742,358 bytes)
	Instant Client Package - Basic Lite:	instantclient-basiclite-win32-10.2.0.4.zip (10,566,014 bytes)


Version 10.2.0.3
	Instant Client Package - Basic:		instantclient-basic-win32-10.2.0.3-20061115.zip (34,469,920 bytes)
	Instant Client Package - Basic Lite:	instantclient-basiclite-win32-10.2.0.3-20061115.zip (10,360,970 bytes)
[...]

Version 10.1.0.5
	Instant Client Package - Basic:		instantclient-basic-win32-10.1.0.5-20060419.zip (31,926,105 bytes)
[...]

und fällt dir was auf? die größe der zip-archive zB?

hier mal eine dir /S auflistung von instantclient-basic-win32-11.1.0.6.0.zip


 Verzeichnis von [...]\Oracle-Client\instantclient-basic-win32-11.1.0.6.0

14.11.2008  11:36    <DIR>          .
14.11.2008  11:36    <DIR>          ..
03.10.2007  18:49    <DIR>          instantclient_11_1
               1 Datei(en)              0 Bytes

 Verzeichnis von [...]\Oracle-Client\instantclient-basic-win32-11.1.0.6.0\instantclient_11_1

03.10.2007  18:49    <DIR>          .
03.10.2007  18:49    <DIR>          ..
03.10.2007  18:48            13.824 adrci.exe
03.10.2007  18:48             3.363 adrci.sym
03.10.2007  18:49               315 BASIC_README
03.10.2007  18:48            29.696 genezi.exe
03.10.2007  18:48            13.027 genezi.sym
17.05.2005  12:48         1.060.864 mfc71.dll
09.05.2005  05:29           348.160 msvcr71.dll
03.10.2007  18:38           516.096 oci.dll
03.10.2007  18:38           246.731 oci.sym
10.09.2007  12:57            77.824 ocijdbc11.dll
10.09.2007  12:57            13.143 ocijdbc11.sym
03.10.2007  16:03            18.944 ociw32.dll
03.10.2007  16:03             4.516 ociw32.sym
25.07.2007  10:47         1.879.924 ojdbc5.jar
25.07.2007  10:48         1.977.444 ojdbc6.jar
03.10.2007  05:04         1.388.544 orannzsbb11.dll
03.10.2007  05:04           295.819 orannzsbb11.sym
03.10.2007  18:33           868.352 oraocci11.dll
03.10.2007  18:49           258.636 oraocci11.sym
03.10.2007  18:43       109.096.960 oraociei11.dll
03.10.2007  18:43         2.860.504 oraociei11.sym
03.10.2007  18:49    <DIR>          vc71
03.10.2007  18:49    <DIR>          vc8
              21 Datei(en)    120.972.686 Bytes

 Verzeichnis von [...]\Oracle-Client\instantclient-basic-win32-11.1.0.6.0\instantclient_11_1\vc71

03.10.2007  18:49    <DIR>          .
03.10.2007  18:49    <DIR>          ..
03.10.2007  18:33           868.352 oraocci11.dll
03.10.2007  18:49           258.636 oraocci11.sym
               2 Datei(en)      1.126.988 Bytes

 Verzeichnis von [...]\Oracle-Client\instantclient-basic-win32-11.1.0.6.0\instantclient_11_1\vc8

03.10.2007  18:49    <DIR>          .
03.10.2007  18:49    <DIR>          ..
03.10.2007  18:07           569.344 oraocci11.dll
03.10.2007  18:07               380 oraocci11.dll.manifest
03.10.2007  18:49           446.291 oraocci11.sym
               3 Datei(en)      1.016.015 Bytes

     Anzahl der angezeigten Dateien:
              27 Datei(en)    123.115.689 Bytes
              11 Verzeichnis(se)

is dir die oraociei11.dll (109.096.960 Bytes) aufgefallen?

  1. was das prog alles brauch

[...] Du brauchst auch nicht alles, was da drin ist, denke ich.

richtig! ich brauche nich alles aus dem zip archive, aber ich brauche jede der DLLs. auch die oraociei11.dll (109.096.960 Bytes). ansonsten bekomme ich eine fehlermeldung.

  1. verschmutzes windows

[...] Jedenfalls hast du definitiv die falsche Version oder du hast eine ältere vollständige Clientinstalltion nicht sauber deinstalliert und deswegen die falschen DLLs. [...]

das kann ich ganz und gar ausschliesen. die clients werden in einer blitzblanken WinXP Pro 32 Bit getested. da is nur das Framwork (v2.0.50727) und alle anderen XP updates drauf. ferner is das eine VM in einer "VirtualBox 2.0.4 for Windows hosts x86" die nach jedem test zurück gesetzt wird.

welche andere versionen außer die bei oracle zum download stehen gibt es denn noch? die instantclient-basic-win32-10.2.0.4.zip (34,742,358 bytes) zb? ja, große klasse da is dann die eine DLL nur noch ca. 84MB groß. das bringt uns dann schon sehr viel näher an die 1,5MB der JDBC jar oder an die größe meines C# progs von 354.816 Bytes 😜 (ACHTUNG!!! SARKASMUS)

MfG

Tilton

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger W. Dijkstra

The Humble Programmer by Edsger W. Dijkstra