org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; - PullRequest
0 голосов
/ 07 сентября 2018

Я использую шаблон Jdbc для вставки записи в базу данных. Ниже приведено выражение SQL, которое приводит к ошибке.

INSERT INTO table_name(PDDID, APPLICATION_CODE, STATUS,CREATED_TS) VALUES ( ?,?,?,SYSTIMESTAMP)

Детальное сообщение:

PreparedStatementCallback; bad SQL grammar [

                    INSERT INTO table_name(PDDID, APPLICATION_CODE, STATUS,CREATED_TS) VALUES ( ?,?,?,SYSTIMESTAMP)

        ]

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; неправильная грамматика SQL [INSERT INTO table_name (PDDID, APPLICATION_CODE, STATUS, CREATED_TS) VALUES ( ?,,, SYSTIMESTAMP)]?; вложенное исключение java.sql.SQLSyntaxErrorException: ORA-00904: «PDDID»: недействительно Идентификатор

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Попробуйте переименовать ваше поле pddid или использовать «pddid», может, оно конфликтует с pid SQL.

0 голосов
/ 07 сентября 2018

Я думаю, что вы должны ввести правильное имя столбца, так как оно отсутствует или введено неверно. «Неверный идентификатор» чаще всего возникает, когда вы ссылаетесь на неверный псевдоним в операторе выбора. Документы Oracle отмечают это при ошибке ORA-00904:

ORA-00904 строка: неверный идентификатор

Причина: введенное имя столбца отсутствует или неверно.

Введите правильное имя столбца. Допустимое имя столбца должно начинаться с буквы, должно быть не более 30 символов и состоять только из буквенно-цифровых символов и специальных символов $, _ и #.

Если он содержит другие символы, он должен быть заключен в двойные кавычки. Это не может быть зарезервированным словом. Чтобы избежать ORA-00904, имена столбцов не могут быть зарезервированным словом и должны содержать следующие четыре критерия, чтобы быть действительными:

начинается с буквы быть не более тридцати символов состоят только из буквенно-цифровых и специальных символов ($ _ #); другие символы должны заключаться в двойные кавычки.

0 голосов
/ 07 сентября 2018

Проверьте правильность имени столбца "PDDID". Можете ли вы попробовать запустить этот оператор непосредственно на клиенте БД после замены '?' Действительными значениями.

...