From 44c6d9779426671e71a9c26397b1b162f2fec780 Mon Sep 17 00:00:00 2001 From: taijiyouxia <3478678166@qq.com> Date: Thu, 8 Jun 2023 17:27:44 +0800 Subject: [PATCH 1/2] fix bug 2177 2168 --- sql/engines/oracle.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/sql/engines/oracle.py b/sql/engines/oracle.py index 31cabbbbd3..1b05dfa325 100644 --- a/sql/engines/oracle.py +++ b/sql/engines/oracle.py @@ -593,10 +593,7 @@ def explain_check(self, db_name=None, sql="", close_conn=False): conn = self.get_connection() cursor = conn.cursor() if db_name: - cursor.execute( - f" ALTER SESSION SET CURRENT_SCHEMA = :db_name ", - {"db_name": db_name}, - ) + cursor.execute(f' ALTER SESSION SET CURRENT_SCHEMA = "{db_name}" ') if re.match(r"^explain", sql, re.I): sql = sql else: @@ -609,7 +606,7 @@ def explain_check(self, db_name=None, sql="", close_conn=False): ) rows = cursor.fetchone() conn.rollback() - if not rows: + if rows[0] is None or not rows: result["rows"] = 0 else: result["rows"] = rows[0] @@ -672,10 +669,7 @@ def query( conn = self.get_connection() cursor = conn.cursor() if db_name: - cursor.execute( - f" ALTER SESSION SET CURRENT_SCHEMA = :db_name ", - {"db_name": db_name}, - ) + cursor.execute(f' ALTER SESSION SET CURRENT_SCHEMA = "{db_name}" ') sql = sql.rstrip(";") # 支持oralce查询SQL执行计划语句 if re.match(r"^explain", sql, re.I): From 9e80eceed1eaee06e98326beada60c15c105f545 Mon Sep 17 00:00:00 2001 From: taijiyouxia <3478678166@qq.com> Date: Fri, 9 Jun 2023 17:32:44 +0800 Subject: [PATCH 2/2] Update sql/engines/oracle.py Co-authored-by: Leo Q --- sql/engines/oracle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/engines/oracle.py b/sql/engines/oracle.py index 1b05dfa325..0bd00d72ce 100644 --- a/sql/engines/oracle.py +++ b/sql/engines/oracle.py @@ -606,7 +606,7 @@ def explain_check(self, db_name=None, sql="", close_conn=False): ) rows = cursor.fetchone() conn.rollback() - if rows[0] is None or not rows: + if not rows or not isinstance(rows, list) or not rows[0]: result["rows"] = 0 else: result["rows"] = rows[0]