syntax error: syntax error 总的来说,还是oracle的sql写的不对,有sql注入错误。

习惯mysql的时候对关键字加 ` ,所以操作oracle会报错。把TYPE左右两端的 ` 去掉就好了。

  • 其次,oracle的时间函数是SYSDATE,不是NOW().
  • 还有,就是数据库中的时间类型,跟类里面的时间类型不一致,会报错:Mybatis java.lang.IllegalArgumentException: uncategorized SQLException for SQL []; SQL state [null]
    在这里插入图片描述
Exception in thread "Thread-120" org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER ` : INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)
        VALUES( ?,SYSDATE,?,?,?,?,
        ?,?,?,?,?)
### SQL: INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)         VALUES( ?,SYSDATE,?,?,?,?,         ?,?,?,?,?)
### Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER ` : INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)
        VALUES( ?,SYSDATE,?,?,?,?,
        ?,?,?,?,?)
; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection violation, syntax error: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER ` : INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)
        VALUES( ?,SYSDATE,?,?,?,?,
        ?,?,?,?,?); nested exception is java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER ` : INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)
        VALUES( ?,SYSDATE,?,?,?,?,
        ?,?,?,?,?)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy76.insert(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
	at com.sun.proxy.$Proxy174.saveInOracle(Unknown Source)
	at com.engine.common.base.service.impl.BaseServiceImpl.save(BaseServiceImpl.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
	at com.sun.proxy.$Proxy175.save(Unknown Source)
	at com.engine.modules.list.controller.WhiteAndGreyController.lambda$record$0(WhiteAndGreyController.java:630)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER ` : INSERT INTO CRD_DATA_LIST_LOG (ID,CREATE_TIME,USERNAME,TOTAL_COUNT,FAIL_COUNT,OPERATION_TYPE, `TYPE`,REQUEST_PARAMS,RESPONSE_PARAMS,ERRLOG,FLAG)
        VALUES( ?,SYSDATE,?,?,?,?,
        ?,?,?,?,?)
	at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:725)
	at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:253)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:473)
	at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:929)
	at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:122)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:473)
	at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:342)
	at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:350)
	at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:55)
	at com.sun.proxy.$Proxy146.prepareStatement(Unknown Source)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:87)
	at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59)
	at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85)
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
	at com.sun.proxy.$Proxy240.update(Unknown Source)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
	... 21 more
Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'`TYPE`,REQUEST_PARAMS,RESPONSE_PARA',expect RPAREN, actual IDENTIFIER pos 100, line 1, column 100, token IDENTIFIER `
	at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:280)
	at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:288)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseInsert0(SQLStatementParser.java:1641)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseInsert0(SQLStatementParser.java:1612)
	at com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser.parseInsert(OracleStatementParser.java:1707)
	at com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser.parseStatementList(OracleStatementParser.java:115)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:93)
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:89)
	at com.alibaba.druid.wall.WallProvider.checkInternal(WallProvider.java:620)
	at com.alibaba.druid.wall.WallProvider.check(WallProvider.java:574)
	at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:712)
	at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:253)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:473)
	at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:929)
	at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:122)
	at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:473)
	at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:342)
	at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:350)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	... 45 more



  • 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
    答:字段不对应 etity <>sql_table
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐