2017-09-08 2 views
0

사용자 이름, 암호, 포트 번호, 서비스 ID 및 호스트 이름을 제공하여 원격 Oracle 데이터베이스에 로그인하려고합니다! 나는이 프로그램을 실행하면C# 서비스 ID를 사용하여 Oracle 데이터베이스에 액세스

private void button1_Click(object sender, EventArgs e) 

     { 
      connectionString = "Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.72.90)(PORT = 1521))) " + 
      " (CONNECT_DATA = (SERVER = SHARED) (SID = XE))" + 
     "); User Id =" + uname.Text + "; password=" + pword.Text; 


      OracleConnection con = new OracleConnection(); 
      con.ConnectionString = connectionString; 
      con.Open(); 
      OracleCommand cmd = new OracleCommand(); 
      cmd.CommandText = "Select DEFINITION_ID from ATS_AME_DEFS"; 
      cmd.Connection = con; 
      OracleDataReader dr = cmd.ExecuteReader(); 
      dr.Read(); 
      label1.Text = dr.GetString(0); 
     } 

나는 오류에서 "유형의 처리되지 않은 예외 'Oracle.DataAccess.Client.OracleException'Oracle.DataAccess.dll에서 발생했습니다"GET "con.Open를();"

하지만 서비스 ID (SID = XE)를 바꾸면 (SERVICE_NAME = ora12c) 서비스 이름을 지정하면 데이터베이스에 액세스 할 수 있습니다! 이 문제를 어떻게 해결할 수 있습니까?

답변

1

오라클 연결 관리자는 SID을 지원하지 않으며 서비스 이름 만 지원합니다.

+0

고맙습니다. 서비스 ID 지원을 받기 위해 사용할 수있는 항목은 무엇입니까? –