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

回到顶部