Подключение C # к Oracle - PullRequest
       51

Подключение C # к Oracle

12 голосов
/ 26 октября 2009

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

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

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

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

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

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

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

Редактировать 2:
Я использую .Net 3.5

Ответы [ 7 ]

7 голосов
/ 26 октября 2009

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

5 голосов
/ 29 октября 2009

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

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

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

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

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

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

Какие мгновенные клиентские пакеты вам нужны:

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

На стеке есть много статей о развертывании мгновенного клиента oracle с приложениями на c #.

РЕДАКТИРОВАТЬ: обновленные ссылки и версии

4 голосов
/ 26 октября 2009

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

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

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

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

Надеюсь, это поможет!

2 голосов
/ 26 октября 2009

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

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

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

2 голосов
/ 26 октября 2009

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

1 голос
/ 26 октября 2009

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

1 голос
/ 26 октября 2009

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

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

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

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


РЕДАКТИРОВАТЬ: пакет ODAC содержит ODP и Oracle Developer Tools

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...