我正在为表单的大型条件运行jOOQ集成测试
WHERE x IN (:1, :2, :3, :4, ..., :3001, :3002)
IN
上面的示例描述了一个条件中有许多绑定变量。Oracle 在 IN 条件的括号之间有一个众所周知的限制,即 1000 个值(绑定值或内联值)。解决方法很简单,只需要写:
WHERE x IN (:1, :2, :3, :4, ..., :1000) OR x IN (:1001, ...)
另一方面,Sybase ASE 15.5 和 SQL Server 2008 R8 似乎对绑定值的数量有总体限制:Sybase ASE 分别为 2000,SQL Server 分别为 2100。换句话说,似乎没有办法使用这两个数据库的绑定值来拆分/转换上述条件。除了内联所有绑定值之外,有没有办法绕过这个问题?