OPEN_FILES 表函数
OPEN_FILES 表函数返回在作业的所有线程中打开的文件 (*FILE 对象) 的列表。
此信息类似于可通过 "显示作业" (DSPJOB) CL 命令和 "列示打开文件" (QDMLOPNF) 访问的内容 API。
授权: 如果调用者的用户概要文件与要返回信息的作业的 作业用户身份 相同,那么无需查看这些作业的信息。 要查看其他作业的信息,调用者必须具有 *JOBCTL 特权。
模式为 QSYS2。
- 作业名
- 用于标识作业的限定名的字符或图形字符串表达式。 特殊值 "*" 指示当前作业。
此函数的结果是包含具有下表中所示格式的行的表。 所有列都是可空的。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| 库名 | VARCHAR(10) | 包含打开文件的库的名称。 如果文件是内联数据文件,那么包含空值。 |
| file_name | VARCHAR(10) | 打开的文件的名称。 对于未命名的内联数据文件,包含值 QINLINE。 |
| FILE_TYPE | VARCHAR (7) | 打开的文件的类型。
|
| 成员名 | VARCHAR(10) | 如果 FILE_TYPE 是物理 (PF) 或逻辑 (LF) ,那么是数据库成员的名称。 如果正在执行多个成员处理,那么值为 *ALL。 包含 DDM 文件,内联数据文件和设备文件的空值。 |
| device_name | VARCHAR(10) | 如果 FILE_TYPE 是设备文件 (BSCF , CMNF , DKTF , DSPF , ICFF , MXDF , PRTF , SAVF 或 TAPF) ,那么这是用于 I/O 操作的最后一个程序设备的名称。 如果该文件是假脱机文件,那么值为 *SPOOL。 未执行 I/O 操作时,包含设备文件,数据库物理或逻辑文件, DDM 文件和内联数据文件的空值。 |
| 记录格式 | VARCHAR(10) | 用于对文件执行 I/O 操作的最后一个记录格式的名称。 如果未使用记录格式名或未执行任何 I/O 操作,那么包含空值。 |
| 激活组名 | VARCHAR(10) | 作为打开文件作用域的激活组的名称。
包含作用域限定为作业的文件的空值,而不是特定激活组。 |
| 激活组号 | INTEGER | 将打开文件的作用域限定所到的激活组的编号。 包含作用域限定为作业的文件的空值,而不是特定激活组。 |
| 线程标识 | BIGINT | 系统分配的线程句柄,用于标识在其中打开文件的线程。 |
| 选项 (OPEN_OPTION) | VARCHAR (6) | 已执行的打开操作的类型。
|
| 共享打开数 | BIGINT | 为共享处理打开文件的次数。 包含未共享的打开操作的空值。 |
| 写计数 | BIGINT | 成功写操作数。 如果记录分块对文件无效,那么这是记录数。 如果记录分块对文件有效,那么这是记录块数。 |
| 读取计数 | BIGINT | 成功的读操作数。 如果记录分块对文件无效,那么这是记录数。 如果记录分块对文件有效,那么这是记录块数。 |
| 写读取计数 | BIGINT | 成功的写/读操作数。 |
| 其他 IO 计数 | BIGINT | 以下类型的成功 I/O 操作数:
|
| 相对记录编号 | BIGINT | 由数据库文件的 I/O 或打开操作引用的最后一条记录的相对记录号。 包含未执行任何 I/O 操作的非数据库文件和数据库文件的空值。 |
| IASP_NAME | VARCHAR(10) | 存储库的辅助存储池 (ASP) 设备名。 如果库在系统 ASP 或其中一个基本用户 ASP 中,那么包含 *SYSBAS。 如果该文件是内联数据文件或如果无法确定 ASP 设备的名称,那么包含空值。 |
| IASP_NUMBER | INTEGER | 系统从中为库分配存储器的辅助存储池 (ASP) 的编号。 0表示系统ASP。 如果文件是内联数据文件或如果无法确定 ASP 设备的编号,那么包含空值。 |
示例
- 列出为作业 429467/QUSER/QZDASOINIT打开的所有数据库文件。
SELECT * FROM TABLE(QSYS2.OPEN_FILES('429467/QUSER/QZDASOINIT')) WHERE FILE_TYPE IN ('PF', 'LF');
