症状
DB2 的 ADO.NET 提供程序不会处理 WHERE 子句中具有重复命名参数的 SELECT 语句,并返回以下错误:
SQLSTATE 07001、SQLCODE -313
指定的主机变量数不等于参数标记的数目。
原因
DB2 的 ADO.NET 提供程序不支持在参数化 SELECT WHERE 语句中的多个位置处理重复的命名参数,如下所示:
SELECT * FROM TABLE WHERE COL1 = @P1 AND COL2 = @P1。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方法
以下 Host Integration Server 累积更新中修复了此问题:
参考
了解 Microsoft 用于描述软件更新的术语。