Neukázali jste nám úplný kód, který používáte pro připojení k databázi, ale z komentáře k jiné odpovědi se zdá, že používáte OLE DB. Vyhnul bych se jeho použití, zejména pokud se zdá, že má poněkud libovolný limit 128 znaků pro zdroj dat.
Chtěl bych také zdůraznit, že se můžete také vyhnout nutnosti instalovat klienta Oracle, jak doporučuje jiný respondent. S „okamžitým“ klientem nemám moc zkušeností, ale úplný klient je náročný ke stažení a není nutný jen k tomu, aby bylo možné připojit program v C# k Oracle.
Místo toho můžeme použít knihovnu Oracle Managed Data Access. Můžete to nainstalovat pomocí NuGet. Postup:
- přejděte na Nástroje> Správce balíčků knihoven> Konzola správce balíčků
- ujistěte se, že v rozevíracím seznamu Výchozí projekt je vybrán správný projekt,
-
zadejte
Install-Package odp.net.managed
To by mělo přidat ke stažení knihovnu z NuGet a přidat Oracle.ManagedDataAccess do referencí vašeho projektu.
Potom, pokud přidáte using
direktiva pro Oracle.ManagedDataAccess.Client
, měl by následující kód komunikovat s databází 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));
}
}
}