source

C#을 Oracle 데이터베이스에 연결하기 위해 필요한 최소 클라이언트 설치 공간은 얼마입니까?

bestscript 2023. 2. 12. 18:07

C#을 Oracle 데이터베이스에 연결하기 위해 필요한 최소 클라이언트 설치 공간은 얼마입니까?

클라이언트 관리툴과 Visual Studio 2008을 노트북에 다운로드하여 설치하여 C#(Visual Studio 2008)에서 Oracle 데이터베이스(10g)에 접속할 수 있었습니다.

Oracle Client 툴의 설치 공간은 200MB가 넘었고, 설치 공간도 상당히 길었습니다.

최소 가동 가능한 설치 공간이 얼마인지 아는 사람이 있습니까?하나의 DLL과 register 명령어라면 좋겠지만, Oracle home을 설치하고 다양한 환경변수를 설정해야 할 것 같습니다.

Oracle을 사용하고 있습니다.내 코드로 데이터 액세스.

Oracle 데이터베이스에 연결하려면 Oracle Client가 필요합니다.가장 쉬운 방법은 Oracle Data Access Components를 설치하는 것입니다.

설치 공간을 최소화하기 위해 다음을 권장합니다.

  • Oracle(시스템)용 Microsoft 공급자를 사용합니다.Data.OracleClient)를 참조하십시오.
  • Oracle Instant Client Package - Basic Lite 다운로드 :최소한의 zip 파일입니다.버전 11.1.0.6.0보다 훨씬 작은 버전 10.2.0.4를 권장합니다.
  • 특정 폴더에 있는 다음 파일의 압축을 풉니다.
    • v10:
      • oci.module
      • orannzsbb10.disples
      • oraociicus10.2011
    • v11 :
      • oci.module
      • orannzsbb11.disples
      • oraociei 11.2011
  • x86 플랫폼에서는 Oracle 사용자가 이 내용을 읽지 않았으므로 Visual Studio 2003용 CRT DLL(msvcr71.dll)을 이 폴더에 추가합니다.
  • 이 폴더를 PATH 환경 변수에 추가합니다.
  • 응용 프로그램에서 Easy Connect Naming 메서드를 사용하여 악명 높은 TNSNAMES를 삭제합니다.ORA 컨피규레이션파일이것은 다음과 같습니다.sales-server:1521/sales.us.acme.com.

이는 약 19Mb(v10)에 해당합니다.

이 폴더를 여러 응용 프로그램 간에 공유할 필요가 없는 경우 위의 DLL을 응용 프로그램 바이너리와 함께 발송하고 PATH 설정 단계를 건너뛸 수도 있습니다.

오라클 공급자(Oracle)를 사용해야 하는 경우Data Access)가 필요합니다.

  • ODP .NET 11.1.0.6.20(Instant Client에서 동작한다고 생각되는 최초의 버전).
  • Instant Client 11.1.0.6.0 입니다.

이 최신 설정은 테스트하지 않았습니다.

ODAC 11.2.0.2.1을 사용하여 Windows XP에서 위의 Pandicus에서 제안한 방법을 사용합니다.순서는 다음과 같습니다.

  1. ODAC 11.2 Release 3 (11.2.0.2.1 with Xcopy Deployment) 패키지를 oracle.com (53 MB)에서 다운로드하여 ZIP 압축을 풉니다.
  2. oci.dll(1MB), oraociei11.dll(130MB!), oraOps11w.dll(0.4MB), Oracle 등의 DLL을 수집합니다.DataAccess.dll(1MB).나머지 항목은 삭제할 수 있으며 설치할 필요가 없습니다.
  3. 오라클 Access Access.dll 추가, " "using Oracle.DataAccess.Client; 해서 이제 '로', '자신의 코드로', '자신의 코드로', '자신의 코드로', '자신의 코드로', '자신의 코드로', '자신의 코드로', '자신의 코드로', '자신의 코드로',OracleConnection,OracleCommand ★★★★★★★★★★★★★★★★★」OracleDataReaderOracle 데이터베이스에 액세스합니다.상세한 것에 대하여는, 클래스 메뉴얼을 참조해 주세요.tnsnames.ora 컨피규레이션파일을 사용할 필요는 없습니다.접속 문자열만 올바르게 설정할 필요가 있습니다.
  4. 위의 4개의 DLL은 실행 파일과 함께 배포해야 합니다.

2014년 현재 OPD.NET, Managed Driver는 설치 공간이 가장 작습니다.

다음은 이전(예외) 답변에서 제시한 비관리 버전과의 코드 사용률 비교입니다.http://docs.oracle.com/cd/E51173_01/win.122/e17732/intro005.htm#ODPNT148

하여 "dll"을 참조해야 .Oracle.ManagedDataAccess.dll프로젝트:ODP를 다운로드합니다.NET, 관리 드라이버 Xcopy 버전만

다음은 릴리스와 함께 패키징해야 하는 일반적인 풋프린트입니다.

  1. Oracle.ManagedDataAccess.dll
  2. Oracle.ManagedDataAccessDTC.dll

모두 합쳐서 6.4MB라는 어마어마한 용량입니다.넷 4.0

이 방법을 사용하면 ODP.net에 oracle에서 5개의 재배포 가능 파일을 사용하여 연결할 수 있습니다.

Chris 블로그 엔트리: 새로운 ODP 사용.간단한 도입으로 C#에서 Oracle에 접속할 수 있는 Net

편집: 블로그가 모두 다운될 경우를 대비해 간단한 개요를 알려드리겠습니다.

  • oci.module
  • Oracle.DataAccess.dll
  • oraociicus11.124
  • OraOps11w.dll
  • orannzsbb11.disples
  • oraocci11.124
  • ociw32.199

모든 DLL을 동일한 ODP에서 가져와야 합니다.Net/ODAC 배포로 버전 번호 경합을 방지하고 EXE와 동일한 폴더에 모두 저장

DevArt http://www.devart.com/,(이전의 CoreLab(crlab.com)은 순수 C# Oracle 클라이언트를 제공합니다.1개의 dll로 정상적으로 동작합니다.

다음은 Oracle 11.2.0.4.0 업데이트입니다.Windows 7 에서는, 다음의 순서에 성공했습니다.System.Data.OracleClient.

1. Instant Client Package 다운로드 - Basic Lite : Windows 32비트 또는 64비트

2. 다음 파일을 시스템 경로의 위치에 복사합니다.

32비트

 1,036,288  2013-10-11  oci.dll
   348,160  2013-10-11  ociw32.dll
 1,290,240  2013-09-21  orannzsbb11.dll
   562,688  2013-10-11  oraocci11.dll
36,286,464  2013-10-11  oraociicus11.dll

64비트

   691,712  2013-10-09  oci.dll
   482,304  2013-10-09  ociw32.dll
 1,603,072  2013-09-10  orannzsbb11.dll
 1,235,456  2013-10-09  oraocci11.dll
45,935,104  2013-10-09  oraociicus11.dll

3. tnsnames.ora 필요 없는 연결 문자열을 구축합니다.

(아래 테스트 프로그램의 예를 참조하십시오.)

4. 최소한의 C# 프로그램을 실행하여 설치를 테스트합니다.

using System;
using System.Data;
using System.Data.OracleClient;

class TestOracleInstantClient
{
    static public void Main(string[] args)
    {
        const string host = "yourhost.yourdomain.com";
        const string serviceName = "yourservice.yourdomain.com";
        const string userId = "foo";
        const string password = "bar";

        var conn = new OracleConnection();

        // Construct a connection string using Method 1 or 2.
        conn.ConnectionString =
            GetConnectionStringMethod1(host, serviceName, userId, password);

        try
        {
            conn.Open();
            Console.WriteLine("Connection succeeded.");
            // Do something with the connection.
            conn.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("Connection failed: " + e.Message);
        }
    }

    static private string GetConnectionStringMethod1(
        string host,
        string serviceName,
        string userId,
        string password
        )
    {
        string format =
            "SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
            "(HOST={0})(PORT=1521))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)" +
            "(SERVICE_NAME={1})));" +
            "uid={2};" +
            "pwd={3};"; // assumes port is 1521 (the default)

        return String.Format(format, host, serviceName, userId, password);
    }

    static private string GetConnectionStringMethod2(
        string host,
        string serviceName,
        string userId,
        string password
        )
    {
        string format =
            "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
            "(HOST={0})(PORT=1521))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)" +
            "(SERVICE_NAME={1})));" +
            "User Id={2};" +
            "Password={3};"; // assumes port is 1521 (the default)

        return String.Format(format, host, serviceName, userId, password);
    }
}

최종 힌트:에러 「System(시스템)」이 발생했을 경우.Data.OracleClient에는 Oracle 클라이언트 소프트웨어 버전 8.1.7"이 필요합니다.이 질문을 참조하십시오.

ODAC xcopy는 약 45MB의 용량을 제공합니다.http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

Oracle 포럼에 올라온 이 게시물도 매우 유용했습니다.

Oracle Instant Client with Visual Studio를 설정하는 방법

비고: ADO.NET 팀이 시스템을 폐지하고 있습니다.Data.OracleClient는 향후 프로젝트에 ODP를 사용해야 합니다.그물

재생:

다음 환경변수를 설정합니다.

  1. PATH에 다른 oracle 디렉토리가 없는지 확인합니다.
  2. 인스턴트 클라이언트를 가리키도록 PATH 설정
  3. tnsnames.ora 파일이 있는 곳을 가리키도록 TNS_ADMIN을 설정합니다.
  4. NLS_LANG 설정
  5. 인스턴트 클라이언트에 ORACLE_HOME 설정

저는 NLS_LANG을

http://download-east.oracle.com/docs/html/A95493_01/gblsupp.htm#634282

인스턴트 클라이언트에 대한 sqlplus add-on을 사용하여 올바른 클라이언트 소프트웨어를 사용하고 있음을 확인했습니다.

저는 SET NLS_LANG=AMERICAN_AMERICAN을 설정합니다.WE8MSWIN1252

참고: 변경하기 전에 오라클 레지스트리 키(존재하는 경우)를 백업하고 환경 변수의 문자열을 백업하십시오.

Oracle Instant Client FAQ는 여기를 참조하십시오.

언급URL : https://stackoverflow.com/questions/70602/what-is-the-minimum-client-footprint-required-to-connect-c-sharp-to-an-oracle-da