Getting SQL error SQL State S1009

Ahmad Abu Baker picture Ahmad Abu Baker · May 24, 2017 · Viewed 10.6k times · Source

I'm trying to insert values into a table (inquiry) the first value is of type Date , and I'm getting an SQL error SQL State S1009. what is the proper way to convert the date , what am I doing wrong?

String sqlStatement = "INSERT INTO inquiry (INQUIRY_DATE,INQUIRY_NOTE,INQUIRER_ID,PROGRAM_ID,CLASS_ID,CORPORATE_ID)\n"
                + "VALUES (?,?,?,?);";

        ps = con.prepareStatement(sqlStatement);
        java.sql.Date sDate = new java.sql.Date(inquiry.getInquiryDate().getTime());

        int parameterIndex = 1;
        ps.setDate(parameterIndex, sDate);
        ps.setString(parameterIndex++, inquiry.getInquiryNote());
        ps.setInt(parameterIndex++, inquiry.getInquirer().getInquirerID());
        ps.setInt(parameterIndex++, inquiry.getProgramID());
        ps.setInt(parameterIndex++, inquiry.getClassProgramID());
        ps.setInt(parameterIndex++, 1);

Answer

Haifeng Zhang picture Haifeng Zhang · May 24, 2017
sqlStatement = "INSERT INTO inquiry (INQUIRY_DATE,INQUIRY_NOTE,INQUIRER_ID,PROGRAM_ID,CLASS_ID,CORPORATE_ID)\n"
                + "VALUES (?,?,?,?);";

The parameterized query doesn't have enough ?, you queried 6 columns with 2 ? missing, it should be VALUES (?,?,?,?,?,?); ? are used for holding the places for your setXXX() column values