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

Hvorfor fungerer ODP.NET 11 xcopy-implementeringen ikke på en maskine med Oracle DB 10 installeret?

Så som jeg forstår det, var problemet, at mens Oracle.DataAccess.dll var i den samme mappe som appen, kunne den ikke finde sine homies på lavere niveau (oci, et al), og derfor kompatibilitetsfejlen.

Det viser sig, at hvis du vil have et program til at fungere med ODAC 11 xcopy-implementering, uanset hvad brugeren ellers måtte have installeret på sin maskine, skal du gøre 2 ting:

  1. Indstil PATH-miljøvariablen for processen. (Jeg gjorde allerede dette.)
  2. Indstil ORACLE_HOME miljøvariablen for processen. (Jeg gjorde ikke dette.)

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);
    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process);
    

EDIT: Det er også vigtigt at bemærke, at Oracle vil kaste denne fejl ikke kun for miljøproblemer, men også hvis en af ​​filerne mangler på målmaskinen. Jeg fik den samme fejl på andre maskiner på trods af miljøindstillingerne, fordi jeg havde Subversion indstillet til at ignorere mapper kaldet "bin", så OraOps DLL blev ikke kopieret til klienten.



  1. Hvordan bestemmer jeg, hvornår jeg skal bruge højre sammenføjninger/venstre sammenføjninger eller indre sammenføjninger Eller hvordan bestemmer jeg, hvilken tabel der er på hvilken side?

  2. MySQL bruger ikke indekser (Using filesort) ved brug af ORDER BY

  3. MySQL transaktion med regnskabsapplikation

  4. mysql2 gem undlader at kompilere med MySQL 5.6.12 på OS X med Homebrew