为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8.6
【操作系统】:
【CPU】:
【问题描述】*:驱动DmJdbcDriver18-8.1.2.174.jar
达梦数据库执行以下sql,提示Caused by: dm.jdbc.driver.DMException: 存在非法编码字符串,如图
SELECT a.id, a.Id as uid, a.id as user_id,a.user_name,a.email,a.mobile,a.password,a.slug as user_slug,a.photo,a.order_num,a.password_changeable,
a.email_chk,a.mobile_chk,a.status,a.quota,a.used,a.from_domain_account,a.ctime as ctime$,a.mtime as mtime$,a.valid_enable,a.valid_start_time,a.valid_end_time,
b.account_id,b.role from iris_v40.iris_user a ,iris_v40.iris_account_user b where a.id=b.uid and b.account_id = 1
and b.role & 1 >0 and a.status IN(-1,1,0) ORDER BY a.order_num ASC nulls last, nlssort( a.user_name,'NLS_SORT=SCHINESE_PINYIN_M') LIMIT 0, 50
上面的sql去掉 nlssort( a.user_name,'NLS_SORT=SCHINESE_PINYIN_M')可以执行成功,这是为什么,请问如何解决呢?
是不是数据中包含不符合字符集规范的字符导致的,比如特殊符号啥的?可以的话把user_name数据拿出来看一下我们进行一下排查