根据IBM文档(see this page)中的示例,在.NET中应该可以从匿名块返回DB2 z / OS游标并使用datareader循环结果,但是以下代码崩溃时出现以下异常:
错误[42601] [IBM] [DB2] SQL0104N意外的令牌" CURSOR1"发现在""之后。预期的代币可能包括:"部分"。"
测试代码:
[Test]
public void Test()
{
using (var conn = new DB2Connection(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString))
{
conn.Open();
using (var cmd = new DB2Command("BEGIN " +
"DECLARE CURSOR1 CURSOR WITH RETURN TO CLIENT WITH HOLD FOR SELECT ID, DESCRIPTION FROM ITEMS; "+
"OPEN CURSOR1; "+
"END;", conn))
{
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
Console.WriteLine("{0}: {1}", rdr.GetString(0), rdr.GetString(1));
}
}
}
}
}
我的数据库是在z / OS上运行的DB2 V10数据库。 我使用的是DB2 Connect V10.5.3 ...
有人有这个工作吗?