SQL内置全局变量是只读的,由IBM®DB2®for i维护,并且是受信任且易于使用的资源。 存在一些全局变量是为了与DB2系列兼容,并且包含在SYSIBM
模式中。 其他全局变量提供IBM i特定的值,并包含在QSYS2
模式中。 全局变量使应用程序和用户可以轻松访问有用的环境信息,这些信息可用于审核和调试。 它们允许改进的应用程序日志记录以及更高级的出口点程序,触发器程序以及行和列访问控制(RCAC)规则文本。
表1包含有关SQL内置全局变量的一般信息。 内置全局变量在IBM i 7.2之前的版本中不可用。
表1. SQL内置全局变量的一般信息
变量名 |
架构图 |
数据类型 |
尺寸 |
SF99702等级 |
SF99703等级 |
PROCESS_ID |
QSYS2 |
整数 |
-- |
11级 |
7.3基 |
THREAD_ID |
QSYS2 |
比金特 |
-- |
11级 |
7.3基 |
JOB_NAME |
QSYS2 |
VARCHAR |
28 |
3级 |
7.3基 |
SERVER_MODE_JOB_NAME |
QSYS2 |
VARCHAR |
28 |
3级 |
7.3基 |
CLIENT_IPADDR |
SYSIBM |
VARCHAR |
128 |
7.2基 |
7.3基 |
CLIENT_HOST |
SYSIBM |
VARCHAR |
255 |
7.2基 |
7.3基 |
CLIENT_PORT |
SYSIBM |
整数 |
-- |
7.2基 |
7.3基 |
ROUTINE_SCHEMA |
SYSIBM |
VARCHAR |
128 |
7.2基 |
7.3基 |
ROUTINE_SPECIFIC_NAME |
SYSIBM |
VARCHAR |
128 |
7.2基 |
7.3基 |
ROUTINE_TYPE |
SYSIBM |
焦炭 |
1个 |
7.2基 |
7.3基 |
包裹名字 |
SYSIBM |
VARCHAR |
128 |
7.2基 |
7.3基 |
PACKAGE_SCHEMA |
SYSIBM |
VARCHAR |
128 |
7.2基 |
7.3基 |
PACKAGE_VERSION |
SYSIBM |
VARCHAR |
64 |
7.2基 |
7.3基 |
您可以在QSYS2.SYSVARIABLES目录中找到内置的全局变量。 显示所有可用SQL内置全局变量的查询是:
SELECT VARIABLE_SCHEMA, VARIABLE_NAME
FROM QSYS2.SYSVARIABLES
WHERE VARIABLE_SCHEMA = 'QSYS2' OR
VARIABLE_SCHEMA = 'SYSIBM';
在引入这些内置全局变量之前,在SQL中获取此信息的唯一方法是创建一个外部过程或函数,以从系统API获取信息并返回该信息。 具有内置的全局变量消除了这种工作,并提高了效率。