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(',')) + ")

posted on 2014-12-02 10:54  新追梦者  阅读(419)  评论(1)    收藏  举报