补齐预处理定义语句(supple_prepare_sql)
📄字数 660
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
是否对 prepare 语句进行 SQL 补齐。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | BOOLEAN |
| 默认值 | FALSE |
| 取值范围 | TRUE,FALSE |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数控制系统是否对正在执行预处理语句的线程进行 SQL 补齐,开启 supple_prepare_sql 可方便用户通过访问系统表 SYSDBA.SYS_THD_SESSION 的 SQL 字段查看线程上正在执行的 SQL。
| supple_prepare_sql | 作用及影响 |
|---|---|
| true | 负责执行预处理语句的线程上下文会重写 SQL。 |
| false | 负责执行预处理语句的线程上下文缺失 SQL 信息。 |
示例
sql
-- 在线修改 supple_prepare_sql
SQL> SET supple_prepare_sql TO false;
-- 在线查看 supple_prepare_sql
SQL> SHOW supple_prepare_sql;
/* 场景一:
* 1. supple_prepare_sql = true;
* 2. 预处理语句 "SELECT * FROM t1 WHERE c1 = ?" 正在执行中;
*/
SQL> SELECT sql FROM sysdba.sys_thd_session; -- 输出 "?st0:PREPARE ST0 AS SELECT SQL FROM T1 WHERE C1=?;"
/*
* 场景二:
* 1. supple_prepare_sql = false;
* 2. 预处理语句 "SELECT * FROM t1 WHERE c1 = ?" 正在执行中;
*/
SQL> SELECT sql FROM sysdba.sys_thd_session; -- 输出 "?st0;"