租户管理变量 
===========================



租户的变量分为 Global 级别和 Session 级别。Session 级别的变量继承自 Global 级别的变量。同时，Session 建立后可以设定 Session 级别的变量。Session 级别的变量在 Session 中覆盖 Global 级别的变量。

查询变量 
-------------

下述展示查询 Session/Global 级别变量语句的语法：

```sql
SHOW [GLOBAL] VARIABLES [SHOW_VARIABLES_OPTS]
SHOW_VARIABLES_OPTS:
[LIKE 'pattern' | WHERE expr]
```



示例：

```sql
obclient> SHOW VARIABLES LIKE 'ob_query_timeout';

obclient> SHOW GLOBAL VARIABLES WHERE variable_name LIKE 'ob_query_timeout';
```



sys 租户可以通过内部表 `__all_virtual_sys_variable` 查询其他所有普通租户的 Global 变量。

如果连接 sys 租户后再切换到普通租户，此时查询的 Session 级别变量仍然是 sys 租户的 Session 级别的变量。查询的 Global 级别的变量是切换后普通租户的 Global 级别变量。

设置变量 
-------------

设置 Session 级别的变量仅对当前 Session 有效，对其他 Session 无效。设置 Global 级别的变量对当前 Session 无效，需要重新登录建立新的 Session 才会生效。

下述展示设置 Session/Global 级别变量语句的语法：

```sql
SET [GLOBAL] VARIABLE_NAME = 'VALUE'
```



示例：

```sql
obclient> SET ob_query_timeout = 20000000;

obclient> SET GLOBAL ob_query_timeout = 20000000;
```



变量中类型为 `INT`，并且在 `SHOW VARIABLE` 命令中显示 `ON/OFF` 或者 `True/False` 的变量，可以通过如下任意方法设置值：

```sql
SET @@foreign_key_checks = ON

SET @@foreign_key_checks = 1

SET @@foreign_key
```



以上三种方式的 Session 级别变量的设置是等效的。

更多变量参考信息，请参见 [系统变量参考](../../../14.reference-guide-oracle-mode/2.system-variable-1/2.auto_increment_increment-2.md)。



