我使用JDBC通过'IN'语句检索Oracle数据库.但是有太多的表达,大约> 1000.看起来像:
SELECT * FROM MyTable WHERE name IN (?, ?, ?......); --More than 1000 question signal
Run Code Online (Sandbox Code Playgroud)
它会导致" 语法错误或访问规则违规 ",这意味着" 列表中的最大表达式数为1000 ".
我是否必须多次进行检索操作(例如,使用100'?'并检索10次)并合并列表?更好的解决方案?谢谢!
编辑:我没有机会修改数据库,这不是我的艺术作品.
我会重新思考为什么你需要传递那么多要寻找的东西的逻辑.也许有一种不同的方式来指定你要找的东西.
或者,另一个选项是创建临时表,将要查找的键加载到表中,然后在数据表和键表之间进行连接.那你就不需要in()子句了.
| 归档时间: |
|
| 查看次数: |
748 次 |
| 最近记录: |