ODP.NET требуется для Клиента 11 г Oracle?

Попытка:

INSERT INTO table1 ( column1 )
SELECT  col1
FROM    table2  

Это - стандартный ANSI SQL и должно работать над любым DBMS

, на который Он определенно работает:

  • Oracle
  • пост-ГРЭС SQL Server
  • MySQL
  • мс
  • второе полугодие
  • AWS RedShift SQLite v3
  • Teradata
  • DB2
  • Sybase
  • Vertica
  • HSQLDB
  • SAP ХАНА
8
задан Jeff Martin 27 July 2009 в 20:30
поделиться

5 ответов

Когда дело доходит до Oracle, мне нравится использовать Oracle Instant Client :

  • Вам не нужно ничего устанавливать на целевые машины (включая блоки разработчиков! ).
  • Вы можете убедиться, что ваше приложение будет работать с конкретным выбранным вами клиентом.
  • Вы даже можете легко заставить несколько приложений работать с разными версиями клиентов на одном компьютере.
  • Как недостаток, это добавляет значительный вес для вашего приложения (минимум ~ 19 МБ).

Проверьте Каков минимальный размер клиентского пространства, необходимый для подключения C # к базе данных Oracle? для получения дополнительной информации. Чтобы узнать, как настроить проект Visual Studio, который будет работать как на машинах x86, так и на машинах x64, ознакомьтесь с моим сообщением в блоге Oracle Instant Client в Visual Studio .

9
ответ дан 5 December 2019 в 12:11
поделиться

I have found many times that the error "requires Oracle client software version 8.1.7 or greater" is a notoriously misleading error. From distant memory I seem to remember that this usually indicates a file IO permissions problem. I think it may be that the ASP.NET worker process (or whichever identity an application is running under) requires some sort of read or write permission to a folder in the oracle client folder hierarchy...

0
ответ дан 5 December 2019 в 12:11
поделиться

Как насчет деревьев выражений ? Они составляют основу LINQ и позволяют отложить выполнение:

Взято из блога Дэвида Хайдена :

В C # 3.0 вы можете определить делегат следующим образом, используя лямбда-выражение:

Func<int,int> f = x => x + 1;

This делегат компилируется в исполняемый код в вашем приложении и может вызываться как таковой:

var three = f(2); // 2 + 1

Код работает, как и следовало ожидать. Здесь нет ничего особенного.

Деревья выражений

Когда вы определяете делегат как дерево выражений с помощью System.Query.Expression:

Expression<Func<int,int>> expression = x => x + 1;

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

Чтобы действительно использовать делегат, представленный в виде дерева выражений в вашем приложении, вам нужно будет скомпилировать и вызвать его в своем приложении:

1
ответ дан 5 December 2019 в 12:11
поделиться

Это может быть причиной нескольких домов оракулов в окружающей среде. Удалите из своей системы сборки старую версию oracle home. попробуйте снова создать сборку с единственным домом. Есть некоторые проблемы с версией 9i ODP.NET и подключением 10G / 11G

0
ответ дан 5 December 2019 в 12:11
поделиться

У меня возникла проблема, которая может быть связана с тем, что вы видите.

Изначально на моем компьютере был установлен только клиент Oracle 10g, а номер версии компонента .Net Oracle.DataAccess был 10.2.0.100 - это было для среды выполнения .Net v1.0.3705

Я установил ODP.Net и Версия компонента Oracle.DataAccess теперь v2.102.2.20 и работает в среде выполнения .Net v2.0.50727 - я не могу найти ссылку на то, почему Oracle сделал это - это было как-то связано с приведением номеров версий в соответствие с версией среды выполнения

Мне потребовался день, чтобы разобраться с этим. Мы еще не используем клиент 11g, и я давно не использовал клиент 8i, поэтому я не знаю, какие будут номера версий для этих клиентов, но я бы проверил это на вашем месте.

Короче говоря,

1
ответ дан 5 December 2019 в 12:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: