sql >> Database >  >> RDS >> Oracle

Waarom werkt de implementatie van ODP.NET 11 xcopy niet op een machine waarop Oracle DB 10 is geïnstalleerd?

Dus zoals ik het begrijp, was het probleem dat hoewel Oracle.DataAccess.dll in dezelfde map stond als de app, het zijn homies op een lager niveau (oci, et al) niet kon vinden, vandaar de compatibiliteitsfout.

Blijkt dat als u wilt dat een toepassing werkt met ODAC 11 xcopy-implementatie, ongeacht wat de gebruiker nog meer op haar computer heeft geïnstalleerd, u 2 dingen moet doen:

  1. Stel de PATH-omgevingsvariabele voor het proces in. (Ik deed dit al.)
  2. Stel de ORACLE_HOME omgevingsvariabele in voor het proces. (Ik deed dit niet.)

    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);
    

BEWERKEN: Het is ook belangrijk op te merken dat Oracle deze fout niet alleen zal veroorzaken vanwege milieuproblemen, maar ook als een van de bestanden op de doelcomputer ontbreekt. Ik kreeg dezelfde fout op andere machines ondanks de omgevingsinstellingen omdat ik Subversion had ingesteld om mappen genaamd "bin" te negeren, dus de OraOps DLL werd niet naar de client gekopieerd.



  1. Trek de waarden van twee rijen binnen dezelfde kolom af met Mysql-groep op ID

  2. Hoe gebruik je afbeeldingen in Android SQLite die groter zijn dan de beperkingen van een CursorWindow?

  3. Postgres kan CSV-bestand niet openen voor leestoegang:Toestemming geweigerd

  4. Django + MySQL op elastische bonenstaak - Fout bij het opvragen van MySQL