注册

达梦数据库可能不支持MyBatis动态SQL标签(如 <foreach>),因此在SQL中使用这些标签可能会导致语法错误

DearWey 2023/10/31 582 7 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:MACOS
【CPU】:
【问题描述】*:达梦数据库可能不支持MyBatis动态SQL标签(如 <foreach>),因此在SQL中使用这些标签可能会导致语法错误。在这种情况下,我该如何对sql语句进行调整?

示例:
<insert id="batchInsert" parameterType="com.anban.yh.entity.po.InstanceBug">
INSERT INTO fuzzing.t_instance_bug (id,sequence_number ,instance_id, bug_id, crash_file,
bug_info, bug_name, detach_flag, repair_flag, crash_address, crash_source_line, project_id, crash_description, target_server_log_path, hash)
VALUES <foreach collection="list" item="item" separator=",">
( #{item.id},#{item.sequenceNumber}, #{item.instanceId}, #{item.bugId}, #{item.crashFile}, #{item.bugInfo},
#{item.bugName}, #{item.detachFlag}, #{item.repairFlag},#{item.crashAddress},#{item.crashSourceLine},
#{item.projectId},#{item.crashDescription},#{item.targetServerLogPath},#{item.hash}
)
</foreach>
</insert>

错误信息:

SQL: INSERT INTO fuzzing.t_instance_bug (id,sequence_number ,instance_id, bug_id, crash_file, bug_info, bug_name, detach_flag, repair_flag, crash_address, crash_source_line, project_id, crash_description, target_server_log_path, hash) VALUES

Cause: dm.jdbc.driver.DMException: 第 3 行, 第 15 列[]附近出现错误:

语法分析出错
; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 3 行, 第 15 列[]附近出现错误:
语法分析出错

回答 0
暂无回答
扫一扫
联系客服