flowable启动异常报错:liquibase.exception.DatabaseException: Error executing SQL call current_schema: 发生语法错误。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:
351
gbasedbtjdbc_3.5.1_3X1_3_28a3a6.jar
【操作系统】:
【CPU】:
【问题描述】*:flowable启动异常报错:liquibase.exception.DatabaseException: Error executing SQL call current_schema: 发生语法错误。
at com.gbasedbt.jdbc.IfxCallableStatement.<init>(IfxCallableStatement.java:151) ~[gbasedbtjdbc_3.5.1_3X1_3.jar:3.5.1_3X1_3_28a3a6]
at com.gbasedbt.jdbc.IfxSqliConnect.i(IfxSqliConnect.java:6460) ~[gbasedbtjdbc_3.5.1_3X1_3.jar:3.5.1_3X1_3_28a3a6]
at com.gbasedbt.jdbc.IfxSqliConnect.prepareCall(IfxSqliConnect.java:2656) ~[gbasedbtjdbc_3.5.1_3X1_3.jar:3.5.1_3X1_3_28a3a6]
at com.zaxxer.hikari.pool.ProxyConnection.prepareCall(ProxyConnection.java:316) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareCall(HikariProxyConnection.java) ~[HikariCP-4.0.3.jar:na]
at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_311]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_311]
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:238) ~[spring-jdbc-5.3.15.jar:5.3.15]
at com.sun.proxy.$Proxy185.prepareCall(Unknown Source) ~[na:na]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:117) [liquibase-core-4.5.0.jar:na]
... 140 common frames omitted
Caused by: java.sql.SQLException: null
at com.gbasedbt.util.IfxErrMsg.getSQLException(IfxErrMsg.java:409) ~[gbasedbtjdbc_3.5.1_3X1_3.jar:3.5.1_3X1_3_28a3a6]
at com.gbasedbt.jdbc.IfxSqli.D(IfxSqli.java:3862) ~[gbasedbtjdbc_3.5.1_3X1_3.jar:3.5.1_3X1_3_28a3a6]
... 155 common frames omitted
2024-09-24 18:02:22.588 INFO 3420 --- [ main] liquibase.database : Set default schema name to null
2024-09-24 18:02:22.859 INFO 3420 --- [ main] liquibase.lockservice : Waiting for changelog lock....
2024-09-24 18:02:32.912 INFO 3420 --- [ main] liquibase.database : Error getting default schema
liquibase.exception.DatabaseException: Error executing SQL call current_schema: 发生语法错误。
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) [liquibase-core-4.5.0.jar:na]
at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:160) [liquibase-core-4.5.0.jar:na]
at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:171) [liquibase-core-4.5.0.jar:na]
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:179) [liquibase-core-4.5.0.jar:na]
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:194) [liquibase-core-4.5.0.jar:na]
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:189) [liquibase-core-4.5.0.jar:na]
at liquibase.database.AbstractJdbcDatabase.getConnectionSchemaName(AbstractJdbcDatabase.java:365) [liquibase-core-4.5.0.jar:na]
at liquibase.database.AbstractJdbcDatabase.getDefaultSchemaName(AbstractJdbcDatabase.java:325) [liquibase-core-4.5.0.jar:na]
at liquibase.database.AbstractJdbcDatabase.escapeObjectName(AbstractJdbcDatabase.java:920) [liquibase-core-4.5.0.jar:na]
at liquibase.database.AbstractJdbcDatabase.escapeTableName(AbstractJdbcDatabase.java:906) [liquibase-core-4.5.0.jar:na]
at liquibase.sqlgenerator.core.SelectFromDatabaseChangeLogLockGenerator.generateSql(SelectFromDatabaseChangeLogLockGenerator.java:45) [liquibase-core-4.5.0.jar:na]
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25051
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526
修改方案
1 增加gbase支持
org.flowable.common.engine.impl.AbstractEngineConfiguration.java
getDefaultDatabaseTypeMappings()方法
添加
databaseTypeMappings.setProperty("GBase 8s Server","gbase8s");
在org.flowable.common.db.properties包下
添加
gbase8s.properties
内容将此路径下 oracle.properties内容复制即可
2 新增sql文件
org.flowable.db.create
org.flowable.db.drop
org.flowable.common.db.create
org.flowable.common.db.drop
org.flowable.entitylink.service.db.create
org.flowable.entitylink.service.db.drop
org.flowable.eventsubscription.service.db.create
org.flowable.eventsubscription.service.db.drop
org.flowable.identitylink.service.db.create
org.flowable.identitylink.service.db.drop
org.flowable.idm.db.create
org.flowable.idm.db.drop
org.flowable.job.service.db.create
org.flowable.job.service.db.drop
org.flowable.task.service.db.create
org.flowable.task.service.db.drop
org.flowable.variable.service.db.create
org.flowable.variable.service.db.drop
在上述的包下新增sql文件 ,将oracle 的sql文件复制出来,将名字中的oracle 替换成gbase8s
修改sql语句
如下
将sql中的NVARCHAR2 替换成VARCHAR
NUMBER提换成decimal
将NUMBER(*,10) 中的* 替换成28
将TIMESTAMP(6) 替换成 TIMESTAMP(5)
修改ALTER添加外键的语句支持gbase8s
例如
alter table ACT_ID_PRIV_MAPPING add constraint ACT_FK_PRIV_MAPPING foreign key (PRIV_ID_) references ACT_ID_PRIV (ID_);
修改为
alter table ACT_ID_PRIV_MAPPING add constraint foreign key (PRIV_ID_) references ACT_ID_PRIV (ID_);
将语句中的constraint 后边的表名去掉即可
修改ALTER添加唯一约束的语法支持gbase8s
--修改前
alter table ACT_ID_PRIV add constraint ACT_UNIQ_PRIV_NAME unique (NAME_);
--修改后
alter table ACT_ID_PRIV add constraint unique (NAME_) constraint ACT_UNIQ_PRIV_NAME;
mark一下:
以下语法需要调整:
--修改前
create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_);
alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_);
--修改后
Create unique index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_);