SQL的两个错误(无效的列类型getTimestampnotimplemented及ORA00984列在此处不允许)
错误原因:经过排查发现实体类创建的日期类型在数据库中是Number类型,就是这个原因导致的。
java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许
错误现象
### SQL: insert into OSM_REFUND_CHECK(SID, ACCOUNT_DATE, TRADE_MONEY, TRADE_FEE, CHECK_TIME, REMARK, IS_DEL) values ( ?, sysdate-1, ?, ?, syadate, ?, ? )### Cause: java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许
at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:93)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.
结论:
出现的原因是由于,在插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处不允许异常。
本例错误 Sysdate 误写为 Syadate。
以上是 SQL的两个错误(无效的列类型getTimestampnotimplemented及ORA00984列在此处不允许) 的全部内容, 来源链接: utcz.com/z/515164.html