为什么我会收到错误SQLException: 参数太less。 预期1

我正在使用以下代码上传关键字&计数到Excel文件。 我有一个关键字keyword_id作为主键。 我在Excel文件中有两列。 1.关键字和2.count

我的代码是:

 while (rs.next()) { System.out.println("inside "); String keyword = rs.getString(1); int count = rs.getInt(2); System.out.println("insert into SEARCHABLE_KEYWORDS values ('"+ keyword+"','"+count+"')"); stmtdb.execute("insert into SEARCHABLE_KEYWORDS (keyword_id,keyword,count) values ('"+ "select Searchable_Keywords_sequence.nextval from dual"+ "','"+keyword+"','"+count+"')"); System.out.println(keyword + " " + keyword+" count "+count); } 

但我收到以下错误:

 java.sql.SQLException: [Microsoft][ODBC Excel Driver] Too few parameters. Expected 1. at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6998) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7155) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3151) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:378) at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:284) at keywordsreader.main(keywordsreader.java:42) 

count是一个保留关键字,所以如果你的SEARCHABLE_KEYWORDS表中有一列叫count那么你需要把列名放在双引号(“)中。

在查询中双击列名称。 表SEARCHABLE_KEYWORDS是否有KEYWORD_IDKEYWORDCOUNT列? 据我所知,这个错误信息往往是由你的列名错别字或拼写错误造成的。

正如mikej所提到的,你也应该确保不要在你的语句中使用保留关键字而不用引号。 此提示适用于名称为COUNT列。

你在你的SQL中为两个值定义了一个插入,但是你select了三个。

insert into SEARCHABLE_KEYWORDS ( keyword_id,keyword,count ) values ('"+ "select Searchable_Keywords_sequence.nextval from dual"+ "','"+keyword+ "','"+count+"')") "select Searchable_Keywords_sequence.nextval from dual"+ "','"+count+"')")