首页 > 解决方案 > Groovy JDBC:如何使用准备好的语句更新表,其中在更新字段之前必须满足条件

问题描述

我正在尝试使用准备好的语句更新 SQL 中的表,是否需要将字段设置为特定值。这就是我所拥有的:

String sqlString = """UPDATE TIDCNMST
                         SET EDI_OBJECT_MODE = 'E'
                         AND SET EDI_STATUS = 'N'
                       WHERE CONTRACT_STATUS = ?"""
PreparedStatement pstmt = extensionContext.createPreparedStatement(sqlString)
pstmt.setObject(1, contractStatus, OracleTypes.FIXED_CHAR)
pstmt.executeUpdate()

其中 TIDCNMST 是表名,EDI_OBJECT_MODE 和 EDI_STATUS 是需要更新的字段,CONTRACT_STATUS 是包含字段更新前需要满足的必要条件的字段。例如,必须将合同设置为“已取消”,以便将 EDI_OBJECT_MODE 设置为“E”或“启用”,然后将 EDI_STATUS 设置为“N”,以便供应商不会收到 EDI (电子数据交换)。检查状态的功能是 = if (userAction.contains("O06") && (contractStatus != "PENDING" && contractStatus != "APPROVED")){ checkForValidationError(extensionContext, thisPanelState, logger) }。有什么想法吗?提前致谢。

标签: sqljdbcgroovyprepared-statement

解决方案


推荐阅读