【问题标题】:Passing list of IDs to SQL Statement将 ID 列表传递给 SQL 语句
【发布时间】:2014-01-06 10:02:16
【问题描述】:

这段代码:

ids = "1245, 4526, 7689, 8001";
jdbcTemplate.update("DELETE FROM my_table WHERE id IN (?)", new Object[] { ids });

抛出以下异常:

(...) 嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-01722: invalid number

如何将ID列表传递给上述sql语句?

【问题讨论】:

标签: java jdbc jdbctemplate


【解决方案1】:

您的查询错误。您不能将列表传递给单个争论。

试试这个。

jdbcTemplate.update("DELETE FROM my_table WHERE id IN (?,?,?,?)", new Object[] { 1245, 4526, 7689, 8001});

【讨论】:

  • 第一个不起作用,占位符是单个值而不是列表,除非 JDBC 模板(或特定的驱动程序)有什么魔力。
  • 是的,所以我改变了我的答案。
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2010-12-02
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2015-08-08
相关资源
最近更新 更多