OPEN_FILES 表函数

OPEN_FILES 表函数返回在作业的所有线程中打开的文件 (*FILE 对象) 的列表。

此信息类似于可通过 "显示作业" (DSPJOB) CL 命令和 "列示打开文件" (QDMLOPNF) 访问的内容 API。

授权: 如果调用者的用户概要文件与要返回信息的作业的 作业用户身份 相同,那么无需查看这些作业的信息。 要查看其他作业的信息,调用者必须具有 *JOBCTL 特权。

读取语法图跳过可视语法图 OPEN_FILES ( JOB_NAME => 作业名)
模式为 QSYS2。
作业名
用于标识作业的限定名的字符或图形字符串表达式。 特殊值 "*" 指示当前作业。

此函数的结果是包含具有下表中所示格式的行的表。 所有列都是可空的。

表 1. OPEN_FILES 表函数
列名 数据类型 描述
库名 VARCHAR(10) 包含打开文件的库的名称。

如果文件是内联数据文件,那么包含空值。

file_name VARCHAR(10) 打开的文件的名称。 对于未命名的内联数据文件,包含值 QINLINE。
FILE_TYPE VARCHAR (7) 打开的文件的类型。
BSCF
二进制同步通信 (BSC) 文件
CMNF
通信文件
DDMF
分布式 Data Management 文件
DKTF
软盘文件 (假脱机和非假脱机)
DSPF
显示文件
ICFF
系统间通信功能文件
LF
逻辑文件
MXDF
混合文件
PF
物理文件
PRTF
打印机文件 (假脱机和非假脱机)
SAVF
保存文件
TAPF
磁带文件
*在线
inline data file(内联数据文件)
成员名 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) 作为打开文件作用域的激活组的名称。
*DFTACTGRP
该文件的作用域限定为缺省激活组。
*NEW
该文件的作用域限定为 *NEW 激活组。

包含作用域限定为作业的文件的空值,而不是特定激活组。

激活组号 INTEGER 将打开文件的作用域限定所到的激活组的编号。

包含作用域限定为作业的文件的空值,而不是特定激活组。

线程标识 BIGINT 系统分配的线程句柄,用于标识在其中打开文件的线程。
选项 (OPEN_OPTION) VARCHAR (6) 已执行的打开操作的类型。
全部
已针对所有操作 (输入,输出,更新和删除) 打开该文件。
INPUT
该文件仅针对输入操作打开。
OUTPUT
该文件仅针对输出操作打开。
共享打开数 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');