ALTER SESSION
ALTER SESSION 为当前会话设置和清除会话级别的配置参数值。要识别会话级别参数,请查询系统表 CONFIGURATION_PARAMETERS。
语法
ALTER SESSION {
SET [PARAMETER] parameter‑name=value[,...]
| CLEAR { [PARAMETER] parameter‑name[,...] | PARAMETER ALL }
| SET UDPARAMETER [ FOR libname ] key=value[,...]
| CLEAR UDPARAMETER { [ FOR libname ] key[,...] | ALL }
}
参数
SET [PARAMETER]
- 将一个或多个配置参数设置为指定值。
CLEAR [PARAMETER]
- 清除在当前会话中设置的更改的指定配置参数。
CLEAR PARAMETER ALL
- 清除在当前会话中设置的更改的所有会话级别配置参数。
-
SET UDPARAMETER
- 设置一个或多个用户定义的会话参数
(key=value
),以与 UDx 结合使用。键值大小限制如下:-
从客户端设置:128 个字符
-
从 UDx 端设置:无限制
可以通过包含子句
FOR libname
将 SET 操作的范围限制为单个库。例如:=> ALTER SESSION SET UDPARAMETER FOR securelib username='alice';
如果指定一个库,则只有该库可以访问参数的值。使用此限制来保护包含敏感数据(例如凭据)的参数。
-
CLEAR UDPARAMETER
- 清除通过以下选项之一指定的用户定义参数:
-
[FOR libname] key[,...]
:清除 key 指定的参数,(可选)这些参数的范围被限制为库 libname。 -
ALL
:清除当前会话中的所有用户定义参数。
-
特权
无
示例
设置和清除参数
-
强制所有支持隔离模式的 UDx 在隔离模式下运行,即使其定义指定了
NOT FENCED
也是如此:=> ALTER SESSION SET ForceUDxFencedMode = 1; ALTER SESSION
-
在会话级别清除
ForceUDxFencedMode
。其值将被重置为其默认值0
:=> ALTER SESSION CLEAR ForceUDxFencedMode; ALTER SESSION => SELECT parameter_name, current_value, default_value FROM configuration_parameters WHERE parameter_name = 'ForceUDxFencedMode'; parameter_name | current_value | default_value --------------------+---------------+--------------- ForceUDxFencedMode | 0 | 0 (1 row)
-
清除在此会话中设置的更改的所有会话级别配置参数:
=> ALTER SESSION CLEAR PARAMETER ALL; ALTER SESSION
设置和清除用户定义的参数
-
将库
MyLibrary
中的用户定义参数RowCount
的值设置为 25。=> ALTER SESSION SET UDPARAMETER FOR MyLibrary RowCount = 25; ALTER SESSION
-
清除会话级别的
RowCount
:=> ALTER SESSION CLEAR UDPARAMETER FOR MyLibrary RowCount; ALTER SESSION