Почему я получаю ошибку SQLException: [Microsoft] [ODBC Excel Driver] Слишком мало параметров. Ожидаемый 1 - PullRequest
0 голосов
/ 14 июня 2010

Я использую следующий код для загрузки ключевых слов и подсчета в файл Excel.У меня есть keyword_id в качестве первичного ключа для этого.У меня есть две колонки в файле Excel.1.keyword и 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)

Ответы [ 3 ]

3 голосов
/ 14 июня 2010

count является зарезервированным ключевым словом, поэтому, если в вашей таблице SEARCHABLE_KEYWORDS есть столбец с именем count, тогда вам нужно поместить имя столбца в двойные кавычки (")

2 голосов
/ 14 июня 2010

Дважды проверьте имена столбцов в вашем запросе.Есть ли в таблице SEARCHABLE_KEYWORDS столбцы KEYWORD_ID, KEYWORD и COUNT?Насколько я знаю, это сообщение об ошибке часто вызывается опечатками или неправильным написанием имен ваших столбцов.

Как уже упоминалось mikej, вы также должны убедиться, что не используете зарезервированные ключевые слова в своих выражениях, не помещая их в кавычки.Этот совет относится к вашей колонке с именем COUNT.

0 голосов
/ 14 июня 2010

Вы определяете в своем SQL вставку для двух значений, но выбираете три.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...