AS400 db2 SQL7008:通过Sping Boot 插入记录时,表名对于操作无效

tkqqtvp1  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(276)

我们在DB2中直接通过OS/400命令创建了模式/库。因此,如果要新建,默认情况下不会为任何物理文件(表)启用日志记录。我们正在使用数据库迁移工具(如liquibase)进行所有数据库更改,如在Spring Boot 时创建表/视图。在尝试插入或更新时,我收到错误“java.sql.SQLException:TABLE_NAME中的[SQL 7008] X对于操作”“无效。此错误是由于未通过liquibase对新创建的表执行日记记录所致。现在,我尝试查找以下可能性(如果可用)
1.是否有可能在DB2库(在OS/400中创建)下创建表(SQL),以便在插入或更新时不需要日志记录?
1.是否可以通过Java/Sping Boot 在表上创建日志?
1.或者有什么建议,而不是每次都在DB2端对表进行日志记录吗?
请给予您的意见

h79rfbju

h79rfbju1#

当使用提交控制(事务隔离)时,需要对表进行日志记录。
您有两个选择:
1.关闭承诺控制
1.打开表的日记记录
对于选项1,您可以包括
CREATE SCHEMA
在连接字符串中,有关详细信息,请参见this question
对于选项2,如果您使用SQL CREATE SCHEMACREATE TABLE命令创建库和文件,则将自动记录表。
您也可以在透过“建立程式库”(CRTLIB)命令建立程式库之后,使用Start Journal Library (STRJRNLIB)命令。之后,当您在程式库中建立表格或实体档案时,会自动记录该档案。

bgtovc5b

bgtovc5b2#

我遇到了这个错误,并使用iAccess客户端工具修复了它。您可以使用IBM i Access客户端工具添加DB2日志。步骤打开模式,右键单击表,然后单击右键菜单中的包括。

列表中将显示MYTABLE(要添加日记的表),然后右键单击表名,然后转到日记记录,现在添加日记和库的值

相关问题