为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server x64 V8
1-2-114-22.05.09-160333-10045-ENT
【操作系统】:# uname -a
Linux DMGRP1 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"
4.19.90-23.8.v2101.ky10.x86_64
【CPU】:
【问题描述】:
在python3.7中,通过dmPython中的explain()方法获取执行计划时,报错:'ascii' codec can't decode byte 0xe6 in position 60: ordinal not in range(128)
SQL文本为: SELECT (select (CASE db.role$ WHEN 0 THEN '普通数据库' WHEN 1 THEN '主库' WHEN 2 THEN '备库' END CASE ) from v$database db) db_role,
(select (CASE dsc_role WHEN 'NULL' THEN '' ELSE dsc_role END CASE) from v$instance) AS dsc_role,
COUNT(*) dsc_node
FROM V$DSC_EP_INFO
WHERE EP_STATUS = 'OK'
这个应该是python的报错信息吧,跟数据库其实关系不大。

参考一下以下方法试试呢,应该是decode和encode的问题吧