sql >> Database teknologi >  >> RDS >> Oracle

Hvordan bruger jeg Oracle fra .NET?

Den enkleste måde at forklare problemet på er at påpege forskellen mellem Oracle-klienten og ODAC-klientbibliotekerne.

På en 64-bit maskine (Windows 7+) skal du have installeret 64-bit Oracle Client. Dette er den klient, din maskine vil bruge til at oprette forbindelse til Oracle-databaser, der er installeret lokalt på din maskine. For apps hostet på en webserver eller anden terminalserver er reglen den samme.

Tricket er dette... som udvikler skal vores maskiner også have .Net IDE-værktøjet. Oracle har en elendig navnekonvention, men i det væsentlige er der 2 dele:ODT (værktøj) og ODAC (dataadgang). ODP.Net-dataudbyderen er en del af ODAC-bibliotekerne.

Så... tilbage til IDE... Visual Studio er 32-bit, og derfor skal vi installere ovenstående værktøj i 32-bit.

Under udvikling, fejlfinding osv. bruger VS.Net 32-bit klientbiblioteker og dataadgangsbiblioteker til at arbejde med Oracle.

Så snart du implementerer denne applikation på en maskine, bruger den den klient, der er indlæst på maskinen, medmindre en bestemt platform er målrettet.

Det betyder, at hvis du målretter mod 32 og implementerer til 64, vil den bryde... og omvendt. Den bedste ting at gøre er at lade den stå på en hvilken som helst platformssektion og bare huske, hvad fanden du laver :)

Den anden ting, du skal være forsigtig med, er at sikre, at både dine klient- og ODAC-pakker er af samme version... du vil ikke have 11g R2-klient og 11g R5 ODAC, for så snart du installerer, går lortet i stykker igen.

Forbeholdet her er, hvis du ønsker at "embedde" oracle-klienten i din applikation, i hvilket tilfælde OraOps sammen med flere andre biblioteker er implementeret med applikationen - dette kaldes Oracle's Instant Client, og er også en del af ODAC-pakken og inkluderet også i deres fulde klientpakke.

Den gode nyhed...

Oracle vil snart (2013 Q1) frigive deres næste ODP.Net-pakke... som vil være et fuldt administreret kodebibliotek... hvilket betyder, at der ikke er flere separat klient eller ODAC-pakke, der matcher, og platformen vil være uvidende om 32 og 64 bit distinktioner... det vil fungere meget som det gamle microsoft-bibliotek vil, kun det vil blive bygget og vedligeholdt af oracle med et mere robust funktionssæt. Jeg ville kun ønske, at den ville ankomme før.



  1. orakelhjælp mangler komma

  2. Find de maksimale på hinanden følgende år for hvert ID'er i en tabel (Oracle SQL)

  3. SQL Server-historiktabel - udfyldes via SP eller Trigger?

  4. Kan ikke få adgang til midlertidige tabeller fra en funktion