CL:如何遍历库中的所有物理文件?

CL: How can I traverse thru all physical files in a Library?

我想创建一个显示库中所有物理文件的最新版本名称的 CL。使用库名称作为输入参数,如何显示所有物理文件的名称?获得名称后,我可以继续进行版本处理,但我仍然坚持这一点。请提出建议。

提前致谢:)

老派答案

显示对象描述 (DSPOBJD) 命令有一个接受 *OUTFILE 的输出参数。您只需在 DCLF 语句中使用模型文件 QADSPOBJ,并在使用 RCVF 命令读取第一条记录之前使用 OVRDBF 覆盖到您的实际输出文件。

问题是输出文件的格式可能会随着新版本甚至 PTF 的应用而改变。

通用现代答案
使用 ILE CL 和列表对象 (QUSLOBJ) API。 returned 数据被转储到用户 space 中。您可以使用用户 space APIs 在 ILE CL 程序中访问它。

Table (PF) 具体的现代答案
(摘自 jmarkmurphy 的回答)
您也可以尝试使用 John Y 引用的 SQL。这是一个将 return 库中所有物理文件的查询:

select * 
from qsys2.systables
where table_type in ('P', 'T')
  and table_schema = 'MYLIB'
  and file_type = 'D'

您也可以尝试使用 John Y 引用的 SQL。这是一个将 return 库中所有物理文件的查询:

select * 
from qsys2.systables
where table_type in ('P', 'T')
  and table_schema = 'MYLIB'
  and file_type = 'D'

请注意,table_type 包括 'T',这是一个 SQL table,并在 DSPOBJD 中显示为物理文件。 file_type 区分数据文件和源文件。