我正在使用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”:无效 标识符
答案 0 :(得分:0)
检查列名“ PDDID”是否正确。 将有效值替换为“?”后,是否可以尝试直接在数据库客户端上运行此语句。
答案 1 :(得分:0)
尝试重命名您的pddid字段或使用“ pddid”,可能与SQL pid冲突。
答案 2 :(得分:0)
我认为您必须输入一个有效的列名,因为它要么丢失,要么输入的列无效。当您在select语句中引用无效别名时,最常见的是“无效标识符”。 Oracle文档在ORA-00904错误上对此进行了说明:
ORA-00904字符串:无效的标识符
原因:输入的列名丢失或无效。
输入有效的列名。有效的列名称必须以字母开头,且小于或等于30个字符,并且仅由字母数字字符和特殊字符$,_和#组成。
如果包含其他字符,则必须将其用双引号引起来。它可能不是保留字。 为避免ORA-00904,列名不能为保留字,并且必须包含以下四个条件才能有效:
以字母开头 小于或等于三十个字符 仅由字母数字和特殊字符($ _#)组成;其他字符需要用双引号引起来。