gpt4 book ai didi

c# - Oracle 数据库 TNS 键 'data source' 的值长度超出了它的限制 '128'

转载 作者:太空狗 更新时间:2023-10-30 01:18:59 24 4
gpt4 key购买 nike

所以我有一个连接到 Oracle 数据库的连接字符串,基本上我直接从 sql 开发人员那里复制了它,然后删除了空白。

我稍后以编程方式添加用户名和密码。问题是当我尝试打开 SQLConnection 对象时。我收到错误:

The value's length for key 'data source' exceeds it's limit of '128'

我真的不太了解 oracle TNS 连接。我使用此连接字符串是因为当我将其粘贴并进行测试连接时它在向导中起作用。你看到的基本上是我粘贴 TNS 名称后 Visual Studio 生成的内容。

Data Source="(DESCRIPTION=(ADDRESS= (PROTOCOL=TCP)
(HOST=qprd-scan.website.com)(PORT=3726))(CONNECT_DATA=(SERVER=dedicated
(SERVICE_NAME=DBprd_developer)))";

此数据源 key 已经有大约 160 个字符。

我在看 this post on the MSDN forums.

这家伙基本上是说要从数据源中剔除一些其他部分并将它们放在其他地方。我只是不太确定该怎么做。

The MSDN on connection strings并没有告诉我太多。

The MSDN on Connection strings and configuration files也没有帮助。

无论如何,如果有人问我,我很乐意展示更多我的代码或来自 app.config 的东西

最佳答案

您还没有向我们展示您用于连接到数据库的完整代码,但从评论到另一个答案似乎您正在使用 OLE DB。我会避免使用它,尤其是当它似乎对数据源有 128 个字符的任意限制时。

我还要指出,您也可以避免安装 Oracle 客户端,正如另一位回答者所推荐的那样。我对“即时”客户端没有太多经验,但完整的客户端需要大量下载,并且不是仅仅为了能够将 C# 程序连接到 Oracle 所必需的。

相反,我们可以使用 Oracle 托管数据访问库。您可以使用 NuGet 安装它。为此:

  • 转到工具 > 库包管理器 > 包管理器控制台,
  • 确保在“默认项目”下拉列表中选择了正确的项目,
  • 进入

    Install-Package odp.net.managed

这应该添加从 NuGet 下载库并将 Oracle.ManagedDataAccess 添加到项目的引用中。

然后,如果您为 Oracle.ManagedDataAccess.Client 添加一个 using 指令,则以下代码应该与 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));
}
}
}

关于c# - Oracle 数据库 TNS 键 'data source' 的值长度超出了它的限制 '128',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com