我的应用程序是基于Dot Net的。我正在使用VS我的应用程序在其后端使用IBm DB2。 我的查询是
SELECT A, B FROM SERVER.D WHERE A IN
(SELECT C FROM SERVER.E WHERE X = '01OBPP' AND Y= 'U' AND Z= '1')
A,B,C,X,Y,Z列名称,服务器 - 服务器名称,D和电子名称
PFB代码 -
DB2DataAdapter dbAdapter = null;
DB2Connection dbConn = null;
DB2Command dbCommand;
DataSet dsReturnDataSet ;
dbConn = new DB2Connection(connectionString);
if (dbConn.State == ConnectionState.Closed) dbConn.Open();
dsReturnDataSet.Clear();
dbCommand = GetCommand();
dbCommand.CommandText = queryString;
dbCommand.Connection = dbConn;
dbAdapter = new DB2DataAdapter((DB2Command)dbCommand);
dbAdapter.Fill(dsReturnDataSet);
return dsReturnDataSet;
GetCommand()方法具有以下语句
DB2Command dbCommand;
dbCommand = null;
dbCommand = new DB2Command();
dbCommand.CommandType = CommandType.Text;
dbCommand.CommandTimeout = 30;
return dbCommand;
当它遇到'dbAdapter.Fill(dsReturnDataSet);'时它在那里停留了很长时间,然后抛出错误
“ERROR [58004] [IBM] [AS] SQL0901N SQL语句因为失败而失败 非严重的系统错误。可以处理后续的SQL语句。 (原因“CPF4273”。)SQLSTATE = 58004“
请提供一些指示。 如果有人可以提出解决此错误的方法,我将非常感激。
答案 0 :(得分:1)
检查数据库日志。实例的db2diag.log
目录下的db2dump
目录中应该有一个sqllib
文件。在此文件中搜索上述错误,它应包含它引用的根本原因(非严重系统错误)。