如何解决AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效
我们在 DB2 中有由 OS/400 命令直接创建的模式/库。因此,如果我们要新创建,默认情况下不会为任何物理文件(表)启用日志记录。我们正在使用像 liquibase 这样的数据库迁移工具来进行所有数据库更改,例如在 Spring Boot 中创建表/视图。在尝试插入或更新时,出现错误“java.sql.SQLException: [SQL7008] X in TABLE_NAME not valid for operation”。此错误是由于未通过 liquibase 在新创建的表上进行日志记录所致。现在,我试图找到以下可能性如果可用
- 是否有可能在 OS/400 中创建的 DB2 库 9created 下创建表 (SQL),以便在插入或更新时不需要日志记录?
- 是否有可能通过 Java/Spring Boot 在表上创建日志?
- 或者有什么建议而不是每次在 DB2 端记录表?
请提出您的意见
解决方法
使用提交控制(事务隔离)时,需要对表进行日志记录。
您有两个选择:
- 关闭承诺控制
- 为表格开启日记功能
对于选项 1,您可以包括transaction isolation=none;
在连接字符串中,查看 this question 了解更多详情
对于选项 2,如果您使用 SQL CREATE SCHEMA
和 CREATE TABLE
命令来创建库和文件,那么表将被自动记录。
您还可以在通过创建库 (CRTLIB) 命令创建库后使用 Start Journal Library (STRJRNLIB) 命令。此后,当您在库中创建表或物理文件时,它会自动记录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。