Visual Studio 2015의 Oracle 데이터베이스 연결

c# connection-string dapper oracle11g visual-studio-2015

문제

내 백엔드로 oracle 데이터베이스가 있고 ORM이 Dapper 인 웹 API를 작성하고 싶습니다.

odac.client.x86과 Oracle.ManagedDataAccess 및 dapper 라이브러리를 nuget 패키지 관리자에서 설치했습니다. 아래 이미지와 같이 서버 탐색기에서 데이터베이스를 연결할 수 있습니다. 여기에 이미지 설명을 입력하십시오.

다음으로 프로젝트에 Web Api2 빈 컨트롤러를 추가했습니다. 이것은 내 연결 문자열입니다. Source = Oracle_test; 보안 정보 유지 = True, 사용자 ID = tams, Password = ***********, 유니 코드 = True .

그리고 내 코드는

   public IHttpActionResult Get()
    {
        using (OracleConnection db = new OracleConnection("Data Source = Oracle_test; Persist Security Info = True; User ID = tams; Password = tams; Unicode = True"))
        {
            db.Open();
            dynamic result = db.Query("Select NAME from APPLICANT_BATCHES").SingleOrDefault();
            return Ok(result);

        }
    }

아래 그림과 같이 TypeInitializationException 예외가 발생합니다. 여기에 이미지 설명을 입력하십시오.

나는 더럽고 오라클 데이터베이스를 처음 사용하여 제 오라클 데이터베이스에 연결하고 C #에서 오퍼 ORM을 사용하여 결과를 얻도록 도와줍니다.

내 데이터베이스 버전은 - 11.2.0.1.0 Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

수락 된 답변

연결 문자열에서 Unicode = True 부분을 ​​제거하십시오.

MSDN 설명서 에 따르면 :

Oracle 9i 클라이언트 소프트웨어를 사용하지 않고 Oracle 9i 서버와 통신 할 때 유니 코드를 true로 설정하면 예기치 않은 결과가 발생할 수 있습니다.

이것은 오라클의 이전 버전으로 작성되었지만 새로운 버전으로 복제했습니다. Oracle Managed Data Access 드라이버와 Dapper를 사용하여 Oracle 11에 연결하는 프로젝트가 있습니다. 연결 문자열에 Unicode = True 를 추가하면 새 Oracle Connection을 만들 때 예외가 발생하면서 작업이 중지됩니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.