为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:linux
【CPU】:
【问题描述】*:
切换dm数据库后sql更新失败,加了单引号一样出错
UPDATE job_group as t
SET t.app_name = #{appName},
t.title = #{title},
t.order = #{order},
t.address_type = #{addressType},
t.address_list = #{addressList}
WHERE id = #{id}
-- 出错信息
SQL: UPDATE job_group as t SET t.app_name = ?, t.title = ?, t.order = ?, t.address_type = ?, t.addr
Cause: dm.jdbc.driver.DMException: 第 4 行, 第 7 列[order]附近出现错误:
出错
d SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 4 行, 第 7 列[order]附近出现错误:
### SQL: UPDATE job_group as t SET t.app_name = ?, t.title = ?, 't.order' = ?, t.address_type = ?, t.address_list = ? WHERE id = ?
### Cause: dm.jdbc.driver.DMException: 第 4 行, 第 13 列[']附近出现错误:
语法分析出错
; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 4 行, 第 13 列[']附近出现错误:
语法分析出错
1、order是达梦数据库的排序关键字;
2、mysql迁移达梦数据后,可以根据此字段字段类型来选择是添加单引号还是双引号规避此问题;
3、根据图示双引号:char类型;双引号:varchar2类型;
order是关键字,需要加双引号。数据库里面列名如果试小写就"order",如果是大写就是"ORDER"