Google
 
Web itpro-blogger.blogspot.com
日曜日, 6月 09, 2019

[ORACLE]管理対象ドライバODP.NET(ManagedDataAccess)の移行方法

・管理対象ドライバODP.NET(ManagedDataAccess)の移行方法

 1.移行に関する概要

  これまでODP.NETのドライバには、Oracle.DataAccess.dll(管理対象外ドライバ)を使用して
 きましたが、Oracle 12cから導入されたクライアントソフトの設定が不要のODP.NET管理対象
 ドライバがあります。
 このドライバは、クライアント等にInstant ClientやODACを登録する必要がないことが特徴です。
 Oracle.ManagedDataAccess.dllを同梱してConfigファイルを構成するだけでOracle Database
 に接続可能となります。

 2.システム要件

 ・32ビットOS:Windows 7、Windows Server 2008、Windows 8
 ・64ビットOS:Windows 7、Windows Server 2008、Windows 8、Windows Server 2012
 ・Oracle Database 10gリリース2以降のデータベースにアクセスするアプリケーション
 ・Microsoft .NET Framework 4.0以降を対象フレームワークにするアプリケーション
  ・詳細は下記サイトを参照ください。
  https://docs.oracle.com/cd/E57425_01/121/ODPNT/InstallSystemRequirements.htm

 3.クラス・デリゲートサポート比較

 ・Oracle.DataAccess.*とOracle.ManagedDataAccess.*のサポート状況は下記サイト
 を参考にしてください。
  https://docs.oracle.com/cd/E57425_01/121/ODPNT/intro003.htm#BHCFHCAF

 3.参考サイト

 ・Oracle Data Provider for .NET開発者ガイド 12c リリース1 (12.1)
  https://docs.oracle.com/cd/E57425_01/121/ODPNT/toc.htm

 3.移行方法

 ①.NETプロジェクトの参照設定を「Oracle.DataAccess.dll」から
 「Oracle.ManagedDataAccess.dll」に変更します。

 ②ネームスペース参照を変更します。
  C#:using ディレクティブ、VB:Imports ステートメント
    // C#
    using Oracle.ManagedDataAccess.Client;
    using Oracle.ManagedDataAccess.Types;

    ' VB
    Imports Oracle.ManagedDataAccess.Client
    Imports Oracle.ManagedDataAccess.Types

  ③アプリケーション構成ファイル「app.config」にドライバ情報を記述します。
  tnsnames.oraをexeファイルと同じフォルダに置くことでも実現できます。

  下記の例は、対象フレームワーク「Microsoft .NET Framework 4.0」
  Oracle.ManagedDataAccessドライバのバージョンが「4.121」です。

    <configSections>
    <section name="oracle.manageddataaccess.client"
      type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </configSections>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <system.data>
        <DbProviderFactories>
            <remove invariant="Oracle.ManagedDataAccess.Client"/>
            <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
                type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
        </DbProviderFactories>
    </system.data>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <publisherPolicy apply="no"/>
                <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
                <bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.121.2.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="ネットサービス名(TNS名)" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ホスト名 or IPアドレス)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=サービス名))) " />
      </dataSources>
    </version>
    </oracle.manageddataaccess.client>



This page is powered by Blogger. Isn't yours?