views:

57

answers:

3

I am using the following code for uploading keywords & count to an Excel file. I am having the keyword_id as primary key for that one. I am having the two columns in the Excel file. 1.keyword and 2.count

my code is:

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);
}

but I am getting the following error:

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)

please help to solve this problem...

+2  A: 

Doublecheck the column names in your query. Does the table SEARCHABLE_KEYWORDS has the columns KEYWORD_ID, KEYWORD and COUNT? As far as I know this error message often is cause by typos or wrong spelling of your column names.

As mentioned by mikej you should also make sure not to use reserved keywords inside your statements without putting them in quotes. This tip applies to your column with the name COUNT.

codescape
A: 

You are defining in your SQL an insert for two values, but you are selecting three.

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

akf
+3  A: 

count is a reserved keyword so if you have a column in your SEARCHABLE_KEYWORDS table called count then you need to put the column name in double quotes (")

mikej
Good point, did not realize that while writing my answer!
codescape