2014-02-18 3 views
7

에 연결하지만 코드가 라인을 실행하는 경우 :내가 Oracle 데이터베이스에 연결하기 위해 노력하고있어 오라클 데이터베이스

con = new OracleConnection(oradb); 

을 그것은이 오류를 제공합니다. "컴퓨터에 oraons.dll이 없기 때문에 프로그램을 시작할 수 없습니다.이 문제를 해결하려면 프로그램을 다시 설치하십시오." 다음 사이트 http://www.oracle.com/technetwork/topics/dotnet/index-085163.html에서 이미 내 컴퓨터에 .net 용 ODP를 설치하고 Oracle.DataAccess를 참조했습니다.

또한 설치된 폴더를 확인한 결과 해당 폴더에 oraons dll이 있습니다. 코드는 다음과 같습니다.

class OracleDatabase 
{ 
    OracleConnection con; 
    public void ConnectToOracleDb() 
    { 
     string oradb = getConnectionString("host", 1521, "sid", "user", "pass"); 

     try 
     { 
      con = new OracleConnection(oradb); 
      con.Open(); 
      Console.WriteLine("Connected to Oracle" + con.ServerVersion); 
     } 
     catch 
     { 
      Console.WriteLine("Could not connect to FLX"); 
     } 

    } 

    private static string getConnectionString(string databaseIP, int databasePort, string databaseSID, string databaseUN, string databasePW) 
    { 
     return string.Format(
      "Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = {1}))(CONNECT_DATA =(SID = {2})));" + 
      "Persist Security Info=True;User ID={3};Password={4}", 
      databaseIP, databasePort, databaseSID, databaseUN, databasePW 
     ); 
    } 
} 

제안 사항을 연결할 수없는 이유는 무엇입니까?

+1

Oracle xcopy를 사용하여 ODP.NET 드라이버를 설치 한 경우 드라이버 디렉토리가 Windows 시스템 PATH에 추가되었는지 확인하십시오. Oracle xcopy의 경우 수동으로해야합니다. –

+0

그냥 @NicholasKrasnov – kknaguib

+0

오라클 클라이언트 소프트웨어를 설치 했습니까? – steve

답변

3

Data.Access.Client 대신 ManagedDataAccess.Client를 참조하기 시작했습니다.

+0

문제는 PATH입니다. 관리 데이터 선택 액세스는 속임수였습니다. –

2

테스트 프로젝트에서 오류가 발생했습니다. 문제는 이전 PATH가있는 명령 줄에서 Visual Studio를 여는 것이 었습니다. 신선한 것을 모두 열어 본 후에도 효과가있었습니다.

코드에서 PATH를 확인하고 Oracle 폴더가 PATH에 있는지 확인하십시오.

+1

감사합니다. 오늘이 문제에 동참하십시오. 매끄러운 실행 대신 Windows 메뉴에서 시작하여이 문제가 수정되었습니다 – quimbo

+1

실제로 VS가 실행되는 동안 드라이버를 설치했습니다. VS의 재개가 도움이되었습니다. – Bronek

4

PATH 설정이 필요하지 않습니다. dhe ORACLE_HOME\bin 폴더에 oraons.dll 복사본과 함께 동일한 문제를 해결 한 후 설치가 작동합니다.

설치 프로그램과 xcopy depoyment를 통한 Oracle 설치간에 차이가 있습니다. 나는 지금 왜.

HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ODP.NET\4.112.4.0\DllPath 

ORACLE_HOMEBIN 폴더에 DllPath 점 : 두 설치는 같은 레지스트리 설정을했다. 즉 폴더의 PATH 설정이 ORACLE_HOME인데 도움이되지 않습니다. 클라이언트의 ORACLE_HOME에 대한 추가 PATH이 도움이됩니다. 그럴 필요는 없다고 생각합니다. BINoraons.dll 사본 만 있으면 충분합니다.

관련 문제