我想创建一个显示库中所有物理文件的最新版本名称的CL。使用库名作为输入参数,如何显示所有物理文件的名称?一旦我得到名字,我可以继续版本,但我坚持这一点。请建议。CL:如何遍历库中的所有物理文件?
感谢提前:)
我想创建一个显示库中所有物理文件的最新版本名称的CL。使用库名作为输入参数,如何显示所有物理文件的名称?一旦我得到名字,我可以继续版本,但我坚持这一点。请建议。CL:如何遍历库中的所有物理文件?
感谢提前:)
老同学的答案
显示对象说明(DSPOBJD)命令具有接受* OUTFILE输出PARM。您只需在DCLF
陈述中使用模型文件QADSPOBJ,并使用OVRDBF
覆盖实际输出文件,然后使用RCVF
命令读取第一条记录。
问题在于输出文件的格式可能随着新版本甚至PTF的应用而改变。
通用现代答案
使用ILE CL和对象列表(QUSLOBJ)API。返回的数据被转储到用户空间。您可以使用用户空间API在ILE CL程序中访问它。
表(PF)特定现代答案
(由jmarkmurphy从回答)
由John Y.这里作为参考,您也可以尝试使用SQL的查询将返回在所有的物理文件库:
select *
from qsys2.systables
where table_type in ('P', 'T')
and table_schema = 'MYLIB'
and file_type = 'D'
您还可以尝试使用SQL由John Y.作为参考的下面是一个查询将返回存储库中所有的物理文件:
select *
from qsys2.systables
where table_type in ('P', 'T')
and table_schema = 'MYLIB'
and file_type = 'D'
请注意,table_type
包括'T',它是一个SQL表,并且在DSPOBJD中显示为物理文件。 file_type
区分数据和源文件。
我将你的信息添加到我的答案中 – Charles
我正在寻找物理文件列表中的库,这不是给我那个信息 – uSeruSher
@uSeruSher - 他们会给你你需要的。你有什么尝试?如果使用DSPOBJD,不要忘记您可以使用'* ALL'作为对象名称。 –
就我个人而言,我不是API的粉丝,特别是如果你必须从头开始构建调用。 (不同的故事,如果你已经有周围的包装纸。)“旧学校”的方式更简单,不应该灰心。 (这是刮''PRINT'输出,这应该是不鼓励的。)另外,* new *新方法是使用SQL和DB2 for i目录和服务。 –