Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Banco de dados Oracle TNS O comprimento do valor para a chave 'fonte de dados' excede seu limite de '128'


Você não nos mostrou o código completo que você usa para se conectar a um banco de dados, mas parece de um comentário para outra resposta que você está usando OLE DB. Eu evitaria usá-lo, especialmente se parecesse ter um limite arbitrário de 128 caracteres para uma fonte de dados.

Gostaria também de salientar que você também pode evitar a instalação de um cliente Oracle, conforme recomendado por outro respondente. Não tenho muita experiência com o cliente 'instantâneo', mas o cliente completo é um download pesado e não é necessário apenas para poder conectar um programa C# ao Oracle.

Em vez disso, podemos usar a biblioteca Oracle Managed Data Access. Você pode instalar isso usando o NuGet. Para fazer isso:
  • vá para Ferramentas> Gerenciador de Pacotes da Biblioteca> Console do Gerenciador de Pacotes,
  • certifique-se de que o projeto correto foi escolhido na lista suspensa "Projeto padrão",

  • digitar
    Install-Package odp.net.managed
    

Isso deve adicionar o download da biblioteca do NuGet e adicionar Oracle.ManagedDataAccess às ​​referências do seu projeto.

Então, se você adicionar um using diretiva para Oracle.ManagedDataAccess.Client , o código a seguir deve se comunicar com um banco de dados Oracle:
string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>)));User Id=<user>;Password=<password>";
Console.WriteLine("Connection string has length " + connStr.Length);
using (var connection = new OracleConnection() { ConnectionString = connStr })
{
    connection.Open();
    OracleCommand command = new OracleCommand("SELECT * FROM DUAL", connection);
    using (OracleDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            Console.WriteLine(reader.GetString(0));
        }
    }
}