sql >> Databasteknik >  >> RDS >> Oracle

Varför fungerar inte ODP.NET 11 xcopy-distribution på en dator med Oracle DB 10 installerat?

Så som jag förstår det var problemet att medan Oracle.DataAccess.dll fanns i samma katalog som appen, kunde den inte hitta sina homies på lägre nivå (oci, et al), därav kompatibilitetsfelet.

Det visar sig att om du vill att ett program ska fungera med ODAC 11 xcopy-distribution oavsett vad användaren kan ha installerat på sin dator, måste du göra två saker:

  1. Ställ in PATH-miljövariabeln för processen. (Jag gjorde redan det här.)
  2. Ställ in miljövariabeln ORACLE_HOME för processen. (Jag gjorde inte det här.)

    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 är också viktigt att notera att Oracle kommer att skicka detta fel inte bara för miljöfrågor, utan också om en av filerna saknas på måldatorn. Jag fick samma fel på andra maskiner trots miljöinställningarna eftersom jag hade Subversion inställd på att ignorera kataloger som heter "bin", så OraOps DLL kopierades inte till klienten.



  1. Hur kan jag filtrera data i ett Apex Grid för att visa vissa saker för vissa användargrupper?

  2. Spotlight Cloud Basic:Bästa gratis verktyg för övervakning av databasprestanda

  3. Hämta det senaste (senaste) distinkta högsta värdet

  4. Hur man integrerar Apache Spark med MySQL för att läsa databastabeller som en sparkdataram?