У меня есть данные в таблице базы данных mySQL. Я выбираю эти данные и пытаюсь вставить их в таблицу базы данных Netezza. Я использую Spring Framework и имею класс сущности, называемый Студентом.Вставка из одной таблицы базы данных в другую
Некоторые поля в таблице базы данных mySQL находятся в формате Integer, но эквивалентное поле в Netezza находится в символьном формате.
Я использую шаблон JDBC и получаю данные с mySQL и вставляя этот объект Student в Netezza.
Вот мой метод:
String sqlStudent="INSERT INTO STUDENT(STUDENTID,CLASSID,COURSEID,TESTDATE,SCOREDATE) VALUES (?,?,?,?,?)";
netezzaJDBCTemplate.update(sqlStudent,new Object[] {student.getStudentId(),student.getClassId(),student.getCourseId(),student.getTestDate(),student.getScoreDate)});
Я получаю сообщение об ошибке, когда я это делаю. Я даже пытался жестко кодировать INSERT.
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [INSERT INTO STUDENT(STUDENTID,CLASSID,COURSEID,TESTDATE,SCOREDATE) VALUES (1521995,134,21,'2014-02-15 00:00:00','2014-02-15 00:00:00'))]; nested exception is org.netezza.error.NzSQLException: Parameter Index out of range: 1
Это из-за различия в типах данных столбцов между двумя базами данных? или я пропущу что-то еще?
Пожалуйста, помогите.
Почему 'new studentMapper()'. Метод обновления JdbcTemplate не согласуется с правилом «RowMapper»? Вы используете какую-либо пользовательскую реализацию? –
Хорошая добыча! Итак, я жестко закодировал инструкцию INSERT со значениями, но все равно получаю ошибку - вложенное исключение - org.netezza.error.NzSQLException: Индекс параметров за пределами диапазона: 1 – Ram
Отредактированный вопрос. – Ram