java列在此处不允许_java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许

"在执行主方法时出现异常,具体为Spring JDBC的BadSqlGrammarException,原因是执行数据库更新时遇到了SQL语法错误,错误代码ORA-00984表示列在此处不允许。问题出在尝试插入SYSTEM_ACCOUNT表的SQL语句中,错误地使用了占位符${}
摘要由CSDN通过智能技术生成

Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException:

### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许

### The error may involve com.atsig.uac.persistence.AccountMapper.addAccount-Inline

### The error occurred while setting parameters

### 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:94)[FDDS]05-19 18:33:47[SqlSessionUtils.debug] Closing no transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6d999a]

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)

at $Proxy6.insert(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)

at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:56)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)

at $Proxy7.addAccount(Unknown Source)

at com.atsig.uac.service.AccountService.addAccount(AccountService.java:27)

at com.atsig.uac.test.UACTest.main(UACTest.java:93)

Caused by: java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)

at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)

at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)

at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)

at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:947)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)

at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)

at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3482)

at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1373)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)

at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)

at oracle.jdbc.OracleStatement$$EnhancerByProxool$$26166e92.execute()

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:45)

at $Proxy11.execute(Unknown Source)

at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)

at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)

at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)

at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:75)

at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:118)

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:107)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:338)

... 7 more

原因及

解决办法

insert into

SYSTEM_ACCOUNT(ACCOUNT_NAME,ACCOUNT_PWD,ACCOUNT_DESC,ACCOUNT_TYPE,GROUP_ID)

values(${accountName},${accountPwd},${accountDesc},${accountType},${funcSetId})

更改(解决)如下

insert into

SYSTEM_ACCOUNT(ACCOUNT_NAME,ACCOUNT_PWD,ACCOUNT_DESC,ACCOUNT_TYPE,GROUP_ID)

values('${accountName}','${accountPwd}','${accountDesc}','${accountType}',${funcSetId})

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值