SQL内in中的数据量不能超过1000,当超过1000的时候需要拆分处理。
.net 代码拆分
protected string sqlstring(string sqllist)
{
string[] list = sqllist.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
StringBuilder sqlString = new StringBuilder();
for (int i = 0; i < list.Length; i++)
{
if (i == (list.Length - 1))
{
sqlString.Append(list[i]); //SQL拼装,最后一条不加“,”。
}
else if ((i % 999) == 0 && i > 0)
{
sqlString.Append(list[i]).Append(") or fw.fwid in ("); //解决ORA-01795问题
}
else
{
sqlString.Append(list[i]).Append(",");
}
}
return sqlString.ToString();
}
sqllist 为in中的数据量字符串(这里是以‘,’隔开) 最后返回拼接好的字符串
调用
and fw.fwid in (" + sqlstring(fwid.ToString().TrimEnd(',')) + ")
浙公网安备 33010602011771号