2009-10-26 6 views
13

Что является лучшей библиотекой/драйвером для подключения приложения C# (.NET) к Oracle 10g и 11g.
Текущие параметры, которые я нашел являются:Подключение C# к Oracle

  1. Oracle клиент, который поставляется с установкой базы данных
  2. Oracle Instant Client (который немного сбивает с толку, так как он имеет 6-8 версии для многих операционных систем)
  3. Microsoft ODBC? (Можно ли использовать?)
  4. ODP.Net - это отдельный продукт или он включен в 1. и 2.?

Может ли кто-нибудь объяснить различия?

Я планирую приложение C#, которое будет выполнять базовые операции CRUD в базе данных Oracle. Какая библиотека/драйвер является самой маленькой и простой в установке?

Редактировать:
Общая рекомендация - использовать ODP.Net. Теперь, может кто-нибудь объяснить или указать на ответ о различиях между пакетами установки клиента. Я нашел 3 различных клиентов для Oracle 11g:

  • Oracle клиент - клиентские драйверы пакет, который поставляется как часть установки базы данных
  • ODAC - Oracle data access components, содержит много вещей, среди них ODP.Net и Oracle Instant Client
  • Oracle Instant Client который также содержит много вещей, в том числе ODP.NET

Итак, какие из них достаточно для развития? Документация Oracle болезненно детализирована, но ничего не говорит о различиях между этими клиентскими пакетами. Я бы пошел с самым маленьким (Instant Client). Это лучший выбор?

Edit 2:
Я использую .NET 3.5

+0

Какую версию .NET вы используете? – VinPepe

+1

Меня тоже интересует ответ на вопрос №4. – Greg

ответ

6

Для подключения C# к oracle необходим поставщик данных для .net. Это может быть один из следующих:

  • ODP.Net (Oracle)
  • System.Data.OracleClient (Microsoft)
  • ODBC (Oracle)
  • OLEDB (Oracle)
  • DataDirect АДО поставщик данных .NET для Oracle (DataDirect)
  • может быть какой-то другой провайдер

Все поставщик услуг передачи данных должен установить клиент oracle. В java нет отдельной библиотеки jdbc14.jar.У вас есть 2 варианта развертывания клиента оракула:

  • полный клиент (может быть от установки базы данных)
  • клиент мгновенного

ODP.Net, ODBC, OLEDB являются частью полного клиента. Это «жесткий» способ, потому что процесс установки должен выполняться на каждом клиенте, запускающем ваше программное обеспечение. Здесь большинство клиентов размещаются на клиенте.
instant client предоставляется в разных упаковках. Это самый маленький способ для развертывания клиента oracle.

Я бы предложил использовать ODP.Net с Oracle Instant Client, потому что это легко развертывается и очень легкий.

Какие мгновенные пакеты клиента сделать вам необходимо:

  • Пика версия 11.1.0.6.0 (или более поздней версии, где обеспечивается ODAC)
  • Instant Client Package - Basic (если вам нужна полная поддержка языка)
  • Instant Client Package - ODAC

Есть много статей о StackOverflow о развертывании оракулом мгновенного клиента с C# приложений.

EDIT: обновленные ссылки и версии

+0

К клиенту Oracle Instance вы имеете в виду Instant Client? –

+0

Да, да. Отредактировал его. – Christian13467

2

Может быть, я ошибаюсь, но ADO.NET имеют встроенную поддержку Oracle. возможно, для более ранних версий ...

+0

System.Data.OracleClient тоже немного медленный, и Microsoft будет лишен его. – tuinstoel

+0

Да, теперь я вижу. Благодаря этой теме! –

7

Microsoft будет deprecateSystem.Client.OracleClient пространство имен, поэтому я думаю, что лучше всего использовать ODP.NET. Убедитесь, что вы загрузили последнюю версию (ODP.NET 11g), поскольку предыдущие версии имели некоторые проблемы.

+0

Существуют также * существенные * различия в функциональных возможностях, доступных между ODP.NET и (теперь устаревшей) библиотекой OracleClient. ODP.NET обеспечивает гораздо лучший доступ к базовым и расширенным функциям базы данных Oracle. – LBushkin

+0

Почему MS обесценивает это? – JonH

+0

@JonH Команда ADO.NET рассказала об этом здесь: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx –

2

Я думаю, что odbc слишком медленный. System.Data.OracleClient тоже немного медленный, и Microsoft будет устаревать.

Вы можете использовать провайдер devart, есть бесплатная версия. Его легко развернуть. См. Здесь http://www.devart.com/dotconnect/oracle/ Он поддерживает инфраструктуру сущности.

Odp.net работает быстро, но не поддерживает инфраструктуру сущности и ее не очень просто развернуть.

+0

Спасибо. Можете ли вы прокомментировать различия между установками клиента Oracle, о которых я упомянул после метки «Изменить». – zendar

1

Я действительно не могу сказать различия между предоставленными вами решениями, но я всегда использовал Oracle Data Access Components от Oracle, и он всегда работал безупречно.Он может быть найден здесь: ODAC for Visual Studio

Совершенно очевидно, что библиотека, разработанная Oracle на платформе .NET Framework, будет намного более точной, чем библиотека, разработанная компанией, внешней по отношению к Oracle. Например, в отношении исключений, возникающих при доступе к базе данных Oracle, они будут намного полезнее, если библиотека будет разработана командой разработчиков Oracle, поскольку они имеют дополнительные знания в Oracle DB.

Плохо то, что у вас будет зависимость, проблема, которую вам не придется преодолевать, если вы решили использовать .NET System.Data.OracleClient.

Надеюсь, это поможет. С уважением.


EDIT: ODAC пакет содержит ODP и Oracle Developer Tools

+1

Спасибо. Возможно, вы знаете разницу между ODAC и мгновенными клиентскими пакетами? – zendar

+0

Похоже, что Oracle Instant Client не имеет ничего общего с .NET, он просто принадлежит приложениям Oracle Database. См. Больше там: http://www.oracle.com/technology/tech/oci/instantclient/index.html – Ucodia

4

ODP.NET является лучшим поставщиком для доступа к БД Oracle, в основном - потому что это самый родной один, который отличает его от ODBC самая следующие:

  • лучшая производительность
  • ODP.NET обеспечивает доступ к расширенной функциональности Oracle, не доступной через ODBC .NET
  • ODP.NET не использует дополнительный мост доступа к данным.

ODBC также может использоваться, но, как упоминалось выше, он будет медленнее и имеет ограниченную функциональность.

Для изготовления ODP.NET работы Вам необходимы программное обеспечение, перечисленное здесь (и в том числе оракула клиента): http://www.oracle.com/technology/tech/windows/odpnet/faq.html#install

Надеется, что это помогает!

+0

Спасибо. Не могли бы вы прокомментировать вторую часть вопроса после «Редактировать». Мне нужна помощь в выборе «лучшего» клиентского пакета. – zendar

+0

От тех, о которых вы упомянули, вам понадобится пакет ODAC. Он включает ODP.NET и клиента. Оба они необходимы для подключения к Db. – Alexander

1

ODP.NET - это родной поставщик доступа к oracle db. И, следовательно, он должен быть лучше оптимизирован для oracle db. Кроме того, есть функция оракула, такая как тип REF CURSOR, которые не поддерживаются MS ODBC, но поддерживаются ODP.NET. Вы можете загрузить ODAC, который также включает ODP.NET, на веб-сайт www.aracle.com.

Смежные вопросы