
# DBE_SESSION
#### 接口介绍
高级功能包DBE_SESSION支持的所有接口请参见[表1]。DBE_SESSION作用范围是会话级别。
 表1DBE_SESSION 
| 接口名称                                                                                                                                               | 描述                                    |
|:---|:---|
| [DBE_SESSION.SET_CONTEXT]    | 设置指定context下，某一属性(attribute)的值(value) |
| [DBE_SESSION.CLEAR_CONTEXT]  | 清除指定context下，某一属性(attribute)的值(value) |
| [DBE_SESSION.SEARCH_CONTEXT] | 查找指定context下，某一属性(attribute)的值(value) |
   
- DBE_SESSION.SET_CONTEXT
向指定namespace(context)下，设置某一属性(attribute)的值(value)。DBE_SESSION.SET_CONTEXT函数原型为：
```
DBE_SESSION.SET_CONTEXT(
    namespace text,
    attribute text,
    value text
)returns void;
```
表2DBE_SESSION.SET_CONTEXT接口参数说明 
| 参数        | 类型   | 入参/出参 | 是否可以为空 | 描述                                                        |
|:---|:---|:---|:---|:---|
| namespace | TEXT | IN    | 否      | 需要设置的context名称，当context不存在时，新建context，最长支持128个字节，超长时将会截断。 |
| attribute | TEXT | IN    | 否      | 属性名称，最长支持1024个字节，超长时将会截断。                                 |
| value     | TEXT | IN    | 否      | 要设置的值的名称，最长支持1024个字节，超长时将会截断。                             |
   
- DBE_SESSION.CLEAR_CONTEXT
清除指定namespace(context)下，某一属性(attribute)的值(value)。DBE_SESSION.CLEAR_CONTEXT函数原型为：
```
DBE_SESSION.CLEAR_CONTEXT (
    namespace text,
    client_identifier text default null,
    attribute text default null
)returns void ;
```
表3DBE_SESSION.CLEAR_CONTEXT接口参数说明 
| 参数                | 类型   | 入参/出参 | 是否可以为空 | 描述                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|:---|
| namespace         | TEXT | IN    | 否      | 用户指定的context，最长支持128个字节，超长时将会截断。                                                                                                                                                                                                                                |
| client_identifier | TEXT | IN    | 是      | 客户端认证，默认值null，通常情况用户无需手动设置。                                                                                                                                                                                                                                     |
| attribute         | TEXT | IN    | 是      | 要清除的属性，默认值null，表示清除指定context的所有的属性，最长支持1024个字节，超长时将会截断。 注意： 为了保证前向兼容，参数值为字符串'null'时也会清除指定context的所有属性。 |
   
- DBE_SESSION.SEARCH_CONTEXT
查找指定namespace(context)下，某一属性(attribute)的值(value)。DBE_SESSION.SEARCH_CONTEXT函数原型为：
```
DBE_SESSION.SEARCH_CONTEXT (
    namespace text,
    attribute text
)returns text;
```
表4DBE_SESSION.SEARCH_CONTEXT接口参数说明 
| 参数        | 类型   | 入参/出参 | 是否可以为空 | 描述                               |
|:---|:---|:---|:---|:---|
| namespace | TEXT | IN    | 否      | 用户指定的context，最长支持128个字节，超长时将会截断。 |
| attribute | TEXT | IN    | 否      | 要查找的属性，最长支持1024个字节，超长时将会截断。      |
   
#### 示例
```
DECLARE
    a text;
BEGIN
    DBE_SESSION.set_context('test', 'gaussdb', 'one');   --设置名为test的context下属性为gaussdb的值为one
    a := DBE_SESSION.search_context('test', 'gaussdb');
    DBE_OUTPUT.PRINT_LINE(a);
    DBE_SESSION.clear_context('test', 'test','gaussdb');
END;
/
-- 预期结果为：
one
ANONYMOUS BLOCK EXECUTE
```
