我有一个存储过程示例,当我运行此存储过程时,出现以下错误:
在预期条件的上下文中指定的非布尔类型的表达式,在'aa'附近。
这是我的查询,请帮我解决这个错误。
感谢。
int gradecount = 1;
for (int i = 0; i < numOfGrades; i++){
double belowzero = gradeinput.nextDouble();
System.out.println("enter grade number " + gradecount + ":" );
gradecount++;
while (belowzero < 0){
belowzero = gradeinput.nextDouble();
}
grades[i] = belowzero;
}
}
答案 0 :(得分:2)
@SQLString的长度应该增加,500个字符的结尾如下
SET @SQLString += ' inner join TCashVoucherDetail as bb (NOLOCK) on aa
这就是原因:
"An expression of non-boolean type specified in a context where a condition is expected,near 'aa'.".
解决方案:
DECLARE @SQLString nvarchar(4000); -- instead of 500
答案 1 :(得分:0)
只需将PRINT @SQLString
替换为EXECUTE sp_executesql @SQLString;
即可查看正在执行的查询(不会执行您的查询)。
似乎@SQLString的长度不足以存储查询,因此您的字符串被截断。要解决这个问题,只需将@SQLString定义为NVARCHAR(MAX)
即可