为啥在 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 时出现协议错误