为啥在 SSIS 包中连接到 DB2 时出现错误 58031?

Posted

技术标签:

【中文标题】为啥在 SSIS 包中连接到 DB2 时出现错误 58031?【英文标题】:Why am I getting the error 58031 while connecting to DB2 within SSIS package?为什么在 SSIS 包中连接到 DB2 时出现错误 58031? 【发布时间】:2012-10-31 03:41:17 【问题描述】:

您好,我正在尝试连接到 DB2,但它给出了一个错误

[UDB Source [1]] Error: IBM.Data.DB2.DB2Exception: ERROR [58031] [IBM]
SQL1031N  The database directory cannot be found on the indicated file
system.  SQLSTATE=58031

这是一个 SSIS 包,我在其中使用脚本组件连接到 DB2。但它没有打开连接。

我的一段代码是

string dbName = "GRTST";
string uid = "c001";
string pwd = "winter1";

DB2Connection conn = new DB2Connection();
conn.ConnectionString = "DataBase=" + dbName + ";" + "Uid=" + uid + ";" +"Pwd="+ pwd + ";";

conn.Open();

错误描述是

[UDB Source [1]] 错误:IBM.Data.DB2.DB2Exception: ERROR [58031] [IBM] SQL1031N 在 指示的文件系统。 SQLSTATE=58031

在 Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(异常 e) 在 Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PrimeOutput(Int32 输出,Int32[] outputIDs,PipelineBuffer[] 缓冲区) 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPrimeOutput(IDTSManagedComponentWrapper100 包装器,Int32 输出,Int32[] outputIDs,IDTSBuffer100[] 缓冲区, IntPtr ppBufferWirePacket)

请提供您宝贵的建议,以便我继续前进。

【问题讨论】:

【参考方案1】:

有问题的问题:

问题的问题是您没有在连接字符串中指定要连接的服务器。以下链接显示了如何制定 DB2 连接字符串:

Connection strings for IBM DB2

在 SSIS 中连接数据库的适当方式:

话虽如此,您在问题中尝试做的是不是连接到数据库的适当方式。您应该在 SSIS 项目级别创建一个数据源或在 SSIS 包中创建一个连接管理器以连接到您的 DB2 数据源。以下链接描述了如何使用 Microsoft OLE DB Provider for DB2 连接到 DB2 数据源。

Connecting to DB2 using SSIS

Connecting to DB2 from SSIS - Another link

另外,这里是关于如何添加连接管理器的 MSDN 文档

How to: Add or Delete a Connection Manager in a Package

【讨论】:

以上是关于为啥在 SSIS 包中连接到 DB2 时出现错误 58031?的主要内容,如果未能解决你的问题,请参考以下文章

在 NodeJS 中连接到 websocket 时出现协议错误

在 gitlab CI 中连接到 kubernetes 集群时出现禁止错误

尝试在 C# 中连接到 Oracle DB 时出现问题

在 C# 中连接到 SQL Server 时出现问题

通过 SQOOP 连接到 DB2 时出现连接管理器错误

IIB - 通过 mqsicvp 连接到 DB2 ODBC DSN 时出现 DLL 初始化错误