System.Data.OracleClient требует клиентского программного обеспечения Oracle версии 8.1.7 или выше - PullRequest
1 голос
/ 20 октября 2011

Я установил на своем компьютере клиент Oracle версии 10g (реестр ORACLE_BASE-D: \ oracle \ product \ 10.2.0).Я добавил ниже ссылки.System.Data.OracleClient.

Я получаю вышеупомянутую ошибку.Ниже приведен фрагмент кода.

public static OracleConnection getConnection() 
{

    try 
    {
        dataSource = new SqlDataSource();
        dataSource.ConnectionString = System.Configuration.ConfigurationManager.AppSettings.Get("conn");
        OracleConnection connection = new OracleConnection();
        if (dataSource == null) 
        {
            // Error during initialization of InitialContext or Datasource
            throw new Exception("###### Fatal Exception ###### - DataSource is not initialized.Pls check the stdout/logs.");
        } 
        else
        {
            connection.ConnectionString = dataSource.ConnectionString;
            connection.Open();
        }
        return connection;            
    }catch (Exception ex) 
    {
        throw ex;
    }  

}

Пожалуйста, дайте мне знать, в каких областях концерна и где отсутствует Iam. Я новичок в комбинации Oracle и Asp.Net.

Ответы [ 4 ]

3 голосов
/ 27 октября 2011

Похоже, вы используете клиент Microsoft Oracle.Я предлагаю вам использовать драйвер ODP.net, так как он гораздо надежнее.(Я полагаю, что клиент Microsoft также устарел?)

http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

Установите драйвер ODP.net, добавьте ссылку на Oracle.DataAccess в свой проект, и вы хорошоидти!Пример кода (из моего предыдущего поста ):

using System;
using System.Data;
using Oracle.DataAccess.Client;

static class Program
{
    [STAThread]
    static void Main()
    {
        TestOracle();
    }

    private static void TestOracle()
    {
        string connString = 
            "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" + 
            "(HOST=servername)(PORT=‌​1521)))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));"+ 
            "User Id=username;Password=********;";
        using (OracleConnection conn = new OracleConnection(connString))
        {
            string sqlSelect = "SELECT * FROM TEST_TABLE";
            using (OracleDataAdapter da = new OracleDataAdapter(sqlSelect, conn))
            {
                var table = new DataTable();
                da.Fill(table);

                if (table.Rows.Count > 1) 
                    Console.WriteLine("Successfully read oracle.");
            }
        }
    }
}

РЕДАКТИРОВАТЬ: я также сталкивался с ошибкой «Требуется клиентское программное обеспечение Oracle версии 8.1.7 или выше» раньше.Я был вызван установкой Oracle Client на мой компьютер.Вы можете попытаться удалить клиент Oracle (по иронии судьбы) с вашего компьютера, если вы используете драйвер Microsoft.

2 голосов
/ 15 декабря 2015

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

  • Установите клиент Oracle и добавьте расположение bin клиента Oracle в среду Path, доступную для окон ИЛИ
  • Копировать oraociicus10.dll (версия Basic-Lite) или aociei10.dll (версия Basic), oci.dll, orannzsbb10.dll и oraocci10.dll из папки, устанавливаемой клиентом oracle, в папку bin приложения, чтобы приложение могло найти требуемую dll
1 голос
/ 26 мая 2014

Клиентское программное обеспечение Oracle все еще должно быть установлено на клиентском компьютере, чтобы разрешить подключение к базе данных Oracle. Пользователь базы данных - SQL * Net, который является уровнем подключения Oracle для базы данных Oracle. System.Data.OracleClient dll не предоставляет эту функцию.

Скачать Клиентское программное обеспечение Oracle

Вы также должны включить ссылку на DLL при компиляции вашего кода. Например, если вы компилируете программу на C #, ваша командная строка должна содержать:

вроде как: - csc /r:System.Data.OracleClient.dll

* MSDN 1014 *

1 голос
/ 24 июня 2012

«Я установил клиент Oracle версии 10g на свой компьютер» «System.Data.OracleClient требует клиентского программного обеспечения Oracle версии 8.1.7 или выше»

Вы используете Microsoft Oracle Client, а типы в System.Data.OracleClient устарели в .NET Framework 4.0 и будут удалены из будущих версий .NET http://msdn.microsoft.com/en-us/library/77d8yct7.aspx

Проверьте, установлены ли на вашем компьютере старые клиенты Oracle (версии 8 или ниже). Переменная PATH, вероятно, по-прежнему указывает на более старый каталог bin клиента Oracle. Если вы запустите 'tnsping' из командной строки Windows, и если вы не увидите версию 10, то она все равно будет по умолчанию для старой версии.

Перед установкой новых клиентов Oracle всегда рекомендуется сначала удалить все существующие клиенты Oracle. А затем установите наивысшую версию клиента Oracle, поддерживаемую вашим сервером Oracle Database и вашей организацией.

Возможно, вы захотите попробовать Oracle Client 11g R2 и установить провайдеры данных Oracle для .NET http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

Если вы используете .NET Framework 4.0 или выше, когда вы добавляете ссылку на Oracle.DataAccess в проекте Visual Studio, убедитесь, что это dll 4.x.x.x, в противном случае перейдите к месту нахождения вашего клиента и выберите dll * 4.01

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