sql >> データベース >  >> RDS >> Oracle

ODP.NETにはOracleクライアントのインストールが必要ですか

    2013年8月のOracleのAlexKehは、次のように述べています。

    マネージドODP.NETがリリースされました。現在、OracleDB12cclientの一部です。マネージドODP.NETを使用するには、DBクライアントをダウンロードしてインストールする必要があります。そこから、管理対象のODP.NETアセンブリとセットアップファイルのみを抽出できます。これらのファイルは10MB未満であり、任意のターゲットマシンに展開できます。

    現在、スタンドアロンのマネージドODP.NETリリースとODAC12リリースをパッケージ化しています。これはまもなくOTNでリリースされます。

    数日待つことができる場合は、ODAC 12cがOTNで公開され、そのバージョンをダウンロードできます。これが、最新かつ最高のマネージドODP.NETバージョンになります

    ====

    マネージドODP.NETをNuGetに配置する予定はありません。 ODACを使用したマネージドODP.NETダウンロードは、アセンブリの分離とダウンロードサイズに関してNuGetと同じ利点を提供すると考えています。

    OracleがmanagedODP.NETNuGetサポートを提供する必要があるかどうかを議論するスレッドがあります。 ODAC 12cを使用したら、NuGetサポートがまだ必要かどうかについての考えをお聞かせください。https://forums.oracle.com/thread/2559445

    Nugetが管理するODP.NET:

    PM> Install-Package Oracle.ManagedDataAccess
    

    それで、とにかく問題は何ですか?
    これまで、ODP.NETはOracleクライアントの.dllファイルと通信する.NETレイヤーでしたが、これには多くの影響がありました。

    • 大規模なインストールフットプリント(数百Mb)
    • リモートマシンへの厳しい展開-クライアントマシンにODP.NETをインストールするか、大きなファイルを展開する必要があります
    • 複数のバージョン、32ビット/64ビットOSおよびアプリケーションでの作業時の課題

    それで、それは何ですか?

    管理対象ドライバは、基本的にODP.NETの.Netネイティブ実装を含む単一の.dllファイルです。
    つまり、Oracleクライアントは不要であり、ネイティブコードは舞台裏にあります。 XCopyのインストールは簡単に実行できます。

    主なメリット:

    • フットプリントが小さい
    • 32ビット/64ビットOSおよびアプリケーションでスムーズに動作できるように、任意のCPUとしてコンパイルされます。同じマシンで複数のバージョンを簡単に管理できます
    • applicationbinディレクトリに簡単な参照として展開できます。

    それで、キャッチは何ですか?

    • すべての機能がサポートされているわけではありません(ほとんどの機能はサポートされていますが...)。ドキュメントで詳細を確認できます
    • 名前空間がOracle.DataAccess.ClientからOracle.ManagedDataAccess.Clientに変更されました
    • パフォーマンスの違いはまだ明らかではありません。 (古い)ネイティブコードは常に非常に効率的に実行されますが、一方で100%マネージドコードにはパフォーマンス上の利点があります。

    ネイティブコードODP.NETはまだ非常に利用可能であることに注意してください。マネージドバージョン(少なくとも今のところ)は、ネイティブバージョンに追加されます。

    参照:http://oracleatdotnet.blogspot.com.es/2013/07/odpnet-managed-driver-beta-2.html

    ODP.NETマネージドドライバーとアンマネージドドライバーの違い http://docs.oracle.com/html/E41125_02/intro004.htm

    Oracle Data Providerfor.NETの機能 http://docs.oracle.com/database/121/ODPNT/features.htm#ODPNT0007



    1. SequelizeORMの結合テーブルの条件

    2. SpotlightCloudを使用してSQLServerのブロックを解決する

    3. Oracle SQL Developer:REFCURSORの結果をグリッドに表示しますか?

    4. 垂直出力を使用してSQLiteクエリ結果を表示する