Не сте ни показали пълния код, който използвате за свързване към база данни, но изглежда от коментар към друг отговор, че използвате OLE DB. Бих избягвал да го използвам, особено ако изглежда, че има донякъде произволно ограничение от 128 знака за източник на данни.
Също така бих посочил, че можете също така да избегнете необходимостта да инсталирате клиент на Oracle, както е препоръчано от друг отговарящ. Нямам много опит с „незабавния“ клиент, но пълният клиент изисква тежко изтегляне и не е необходим само за да можете да свържете програма на C# към Oracle.
Вместо това можем да използваме библиотеката за управляван достъп до данни на Oracle. Можете да инсталирате това с помощта на NuGet. За да направите това:
- отидете на Инструменти> Мениджър на пакети за библиотека> Конзола за управление на пакети,
- уверете се, че правилният проект е избран в падащия списък „Проект по подразбиране“,
-
въведете
Install-Package odp.net.managed
Това трябва да добави изтегляне на библиотеката от NuGet и добавяне на Oracle.ManagedDataAccess към препратките на вашия проект.
След това, ако добавите using
директива за Oracle.ManagedDataAccess.Client
, следният код трябва да общува с база данни на 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));
}
}
}