ODP.NET требует установки Oracle Client - PullRequest
34 голосов
/ 19 октября 2011

Я должен подключить БД Oracle 11g из кода .NET.Для этого я установил ODP.NET bur, прочитав некоторые сообщения на форуме, и понял, что мне тоже нужна установка Oracle Client.

Это правда?Я вижу, что клиент Oracle имеет размер около.2GB !!!Нужно ли устанавливать такой огромный клиент только для того, чтобы можно было подключать БД Oracle?

Ответы [ 6 ]

37 голосов
/ 13 августа 2013

Алекс Кех из Oracle в августе 2013 г. говорит:

Выпущен управляемый ODP.NET.В настоящее время он является частью клиента Oracle DB 12c.Чтобы использовать управляемый ODP.NET, вам необходимо скачать и установить клиент БД.Оттуда вы можете извлечь только управляемые файлы сборки и настройки ODP.NET.Эти файлы имеют размер менее 10 МБ и могут быть развернуты на любых целевых машинах.

В настоящее время мы упаковываем автономный управляемый выпуск ODP.NET и выпуск ODAC 12, который будет намного меньше.Это будет выпущено на OTN в ближайшее время.

Если вы можете подождать пару дней, ODAC 12c выйдет на OTN, и вы сможете скачать эту версию.Это будет наша последняя и самая лучшая управляемая версия ODP.NET

====

Мы не планируем устанавливать управляемый ODP.NET на NuGet.Мы считаем, что управляемая загрузка ODP.NET с ODAC обеспечит те же преимущества NuGet с точки зрения изоляции сборки и размера загрузки.

Существует поток, обсуждающий, должна ли Oracle предоставлять управляемую поддержку ODP.NET NuGet.После того, как вы используете ODAC 12c, я хотел бы узнать ваши мысли о том, нужна ли поддержка NuGet.https://forums.oracle.com/thread/2559445

Управление Nuget ODP.NET :

PM> Install-Package Oracle.ManagedDataAccess

Так в чем же проблема?
В основномдо сих пор ODP.NET был слоем .NET, который взаимодействует с DLL-файлами клиента Oracle, и этот факт имел много последствий:

  • Большой объем установки (несколько сотен МБ)
  • Трудное развертывание на удаленных компьютерах - необходимо установить ODP.NET на клиентском компьютере или развернуть большие файлы
  • Сложно при работе с несколькими версиями, 32-битными / 64-битными ОС и приложениями

Так что же это?

Управляемый драйвер - это, в основном, один DLL-файл с собственной реализацией .Net ODP.NET.
Это означает, что Oracle Client не требуется,и теперь нативный код негласно.Установка XCopy может быть легко выполнена.

Основные преимущества:

  • Небольшая площадь
  • Скомпилирован как любой процессор, поэтому он может работать на 32-битной / 64-битной ОС и в приложениях без проблем.Простое управление несколькими версиями на одном компьютере
  • Может быть развернуто в качестве простой ссылки в каталоге bin приложения.

Так в чем же подвох?

  • Не все функции поддерживаются (хотя большинство из них ...), вы можете узнать больше о документации
  • Пространство имен изменено из Oracle.DataAccess.Клиент для 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 для .NET http://docs.oracle.com/database/121/ODPNT/features.htm#ODPNT0007

11 голосов
/ 06 августа 2013

вы можете получить управляемый ODP.NET тоже используя NuGet https://www.nuget.org/packages/odp.net.managed/

PM> Install-Package odp.net.managed 

Посмотрите видео с кратким описанием использования ODP.NET Managed Driver! (скопировано с http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html)

http://www.youtube.com/watch?feature=player_embedded&v=I1q50HnUh_w


Обновление:

NuGet для официального Oracle ODP.NET, управляемого драйвера https://www.nuget.org/packages/Oracle.ManagedDataAccess/

Или консоль диспетчера пакетов

PM> Install-Package Oracle.ManagedDataAccess
11 голосов
/ 19 октября 2011

Для ODP.NET требуются собственные библиотеки OCI DLL (~ 130 МБ).

Вероятно, самый простой способ получить все необходимые файлы - это загрузить «Компоненты доступа к данным Oracle с развертыванием XCopy» из oracle.com.

Для справки, ODP.NET во время выполнения использует следующие библиотеки DLL:

oci.dll
Oracle.DataAccess.dll (the managed ODP.NET assembly itself)
orannzsbb11.dll
oraociei11.dll
OraOps11w.dll

Кстати, вам нужно быть осторожным, если вы используете 32-битовые или 64-битные собственные библиотеки Oracle DLL - вы должны сопоставить их с битностью вашего управляемого кода.Это особенно сложно, если вы строите для "любого процессора", поэтому битность не фиксирована.

8 голосов
/ 19 октября 2011

Последние версии ODAC поставляются с мгновенным клиентом Oracle, поэтому вам не нужно устанавливать полный клиент.

( 32-битная версия )

( 64-битная версия )

5 голосов
/ 19 июля 2014

Я оставляю этот ответ, потому что с выпуском управляемого драйвера ODP.net старые ответы теперь немного устарели.

Выпущен управляемый драйвер ODP.net.

Доступная в настоящее время версия ODAC 12cR2 обратно совместима с Oracle 10gR2 или новее.См. Системные требования раздел ODAC 12cR2 Инструкции по установке .ODAC 12cR2 требует / поддерживает платформы .Net с версии 4 до 4.5.1.

Предыдущая версия ODAC 12cR1 также обратно совместима с Oracle 10gR2 или новее в соответствии с инструкциями по установке .

2 голосов
/ 31 октября 2013

Используйте управляемый oracle-клиент , который доступен сейчас. Управляемый AnyCPU 6MB dll.

...