jdbc连接模式为smart_sso,url为:jdbc:dm://192.168.2.133:5237/smart_sso
但是执行update sys_user_online set status = 0 where 1=1会报“无效的表或视图名[sys_user_online]”,在表名前加上"smart_sso.",例如update smart_sso.sys_user_online set status = 0 where 1=1就可以运行成功,是怎么回事?数据库实例已经被我修改成不区分大小写了。
2024-12-26 19:22:24,323 ERROR o.s.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
org.springframework.dao.DataIntegrityViolationException:
无效的表或视图名[sys_user_online]
无效的表或视图名[sys_user_online]
; SQL []; 第2 行附近出现错误:
无效的表或视图名[sys_user_online]; nested exception is dm.jdbc.driver.DMException: 第2 行附近出现错误:
无效的表或视图名[sys_user_online]
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:102)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy23.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:294)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
at com.sun.proxy.$Proxy65.deleteAll(Unknown Source)
at com.smart.sso.server.service.impl.SysUserOnlineServiceImpl.deleteAll(SysUserOnlineServiceImpl.java:27)
at com.smart.sso.server.common.ScheduledTask.syncTokenTask(ScheduledTask.java:117)
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.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
您jdbc的url 是错误的。没有登录到smart_sso模式下。建议表前加模式,或者修改url切换到smart_sso下
jdbc:dm://192.168.2.133:5237?SCHEMA=SYSDBA
https://eco.dameng.com/document/dm/zh-cn/pm/jdbc-rogramming-guide.html
参考这个文档,模式名只是一个普通的连接属性,所以需要写成schema=xxx
的形式
连接串改成
jdbc:dm://192.168.2.133:5237?schema=smart_sso