DBINFO 函数的 'sessionid' 选项返回您的当前会话的会话 ID。当客户端应用连接到数据库服务器时,数据库服务器启动与客户端的会话,并为该客户端指定一会话 ID。该会话 ID 用作客户端与数据库服务器之间给定连接的唯一的标识符。
数据库服务器在称为会话控制块的共享内存中的数据结构中存储该会话 ID 的值。给定会话的会话控制块还包括用户 ID、客户端的进程 ID、主机计算机的名称和各种状态标志。
当您指定 'sessionid' 选项时,数据库服务器从会话控制块检索您的当前会话的会话 ID,并将此值作为整数返回给您。sysmaster 数据库中的某些“系统监视接口”(SMI)表包括会话 ID 的列,因此您可使用 DBINFO 函数获取了的会话 ID 来从这些 SMI 表抽取关于您自己的会话的信息。要获取关于会话控制块的更多信息,请参阅 GBase 8s 管理员指南。要获取关于 sysmaster 数据库和 SMI 表的更多信息,请参阅 GBase 8s 管理员参考手册。
SELECT DBINFO('sessionid') AS my_sessionid FROM systables WHERE tabname = 'systables';
SELECT DBINFO('sessionid') AS user_sessionid FROM customer WHERE customer_num = 101;
CREATE FUNCTION get_sess() RETURNING INT; RETURN DBINFO('sessionid'); END FUNCTION;