2014-02-21 7 views
2

У меня есть данные в таблице базы данных 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  

Это из-за различия в типах данных столбцов между двумя базами данных? или я пропущу что-то еще?

Пожалуйста, помогите.

+0

Почему 'new studentMapper()'. Метод обновления JdbcTemplate не согласуется с правилом «RowMapper»? Вы используете какую-либо пользовательскую реализацию? –

+0

Хорошая добыча! Итак, я жестко закодировал инструкцию INSERT со значениями, но все равно получаю ошибку - вложенное исключение - org.netezza.error.NzSQLException: Индекс параметров за пределами диапазона: 1 – Ram

+0

Отредактированный вопрос. – Ram

ответ

1

new studentMapper(), возможно, проблема. Метод обновления JdbcTemplate не согласуется с правилом RowMapper?

Если вы не используете NamedParameterJdbcTemplate, попробуйте предпочесть, что по правилу JdbcTemplate, который позволяет связывать параметры sql с именами.

Смежные вопросы