java - 由于 StandardLockService 中 Oracle 上的 Liquibase 问题,Spring-Boot 应用程序无法启动

标签 java oracle spring-boot liquibase rds

在 Oracle 12.1.0.2.v15 上运行 spring-boot 2.1.3.RELEASE 并使用 liquibase 3.6.3,我在启动时遇到异常:

Did not update change log lock correctly.\n\n 0 rows were updated instead of the expected 1 row using executor oracle there are 0 rows in the table

这个:

经过调查,我怀疑这可能与我的用户的某些缺失权利有关,因为它在使用 AWS RDS 12.1.0.2.v15 创建的数据库上运行良好,但在本地数据库上运行不佳。

唯一明显的区别是本地用户无法访问 v$parameter,所以我得到:

Could not set check compatibility mode on OracleDatabase, assuming not running in any sort of compatibility mode: Cannot read from v$parameter: ..

有人有想法吗?

是否与自动提交默认值有关?

使用 liquibase 时是否有 Oracle 用户要求的链接?

最佳答案

所以问题最终是 DBA 错误配置了 Oracle 用户,他没有表空间的权限。

但是这个问题并没有出现在日志中。

一旦我删除了 liquibase 上下文:

spring.liquibase.contexts

问题很明显:

ORA-01950 : no privileges on tablespace ....

关于java - 由于 StandardLockService 中 Oracle 上的 Liquibase 问题,Spring-Boot 应用程序无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55504251/

相关文章:

java - Mapstruct 使用嵌套集合映射可选字段

java - 复制并合并两个文件

java - 在 switch 语句中调用忽略大小写

java - 如何获取要在 Eclipse 输出中显示的文本文件?

sql - Oracle 从 SYSDATE 中减去 5 个工作日

spring-boot - spring kafka header 中没有类型信息,也没有提供默认类型

mysql - 使用 CrudRepository 删除带有集合的实体时,Hibernate-envers 抛出异常

字符串中的动态重复序列需要 Java 正则表达式

java - 使用 java 将 SQLPLUS 查询输出为 *.csv 格式

sql - Oracle 中的命令 "REM INSERTING into TABLE_NAME"究竟做了什么?