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

Ibm midrange CL:如何遍历库中的所有物理文件?,ibm-midrange,Ibm Midrange,我想创建一个CL,显示库中所有物理文件的最新版本名。使用库名称作为输入参数,如何显示所有物理文件的名称?一旦我得到名字,我可以继续版本,但我被困在这个。请建议 提前感谢:)老派答案 Display Object Description(DSPOBJD)命令有一个接受*OUTFILE的输出参数。在使用RCVF命令读取第一条记录之前,只需在DCLF语句中使用模型文件QADSPOBJ,并使用OVRDBF覆盖到实际输出文件 这样做的问题是,输出文件的格式可能会随着新版本的出现而改变,甚至会随着应用PTF

我想创建一个CL,显示库中所有物理文件的最新版本名。使用库名称作为输入参数,如何显示所有物理文件的名称?一旦我得到名字,我可以继续版本,但我被困在这个。请建议


提前感谢:)

老派答案

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

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

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

特定于表格(PF)的现代答案
(摘自杰玛克墨菲的回答)
您还可以尝试使用John Y引用的SQL。以下是一个查询,它将返回库中的所有物理文件:

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

老派答案

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

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

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

特定于表格(PF)的现代答案
(摘自杰玛克墨菲的回答)
您还可以尝试使用John Y引用的SQL。以下是一个查询,它将返回库中的所有物理文件:

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

您还可以尝试使用John Y引用的SQL。以下是一个查询,它将返回库中的所有物理文件:

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

请注意,
table\u type
包括“T”,它是一个SQL表,在DSPOBJD中显示为物理文件<代码>文件类型区分数据文件和源文件。

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

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

请注意,
table\u type
包括“T”,它是一个SQL表,在DSPOBJD中显示为物理文件<代码>文件类型区分数据文件和源文件。

我正在查找库中的物理文件列表,但这并没有给我该列表info@uSeruSher-他们会给你你需要的。你试过什么?如果使用DSPOBJD,请不要忘记可以使用
*ALL
作为对象名。就个人而言,我不喜欢API,尤其是当您必须从头开始构建调用时。(如果你已经有了包装纸,情况就不一样了。)“老派”的方式更简单,不应该气馁。(这是一种不鼓励使用的刮削
*PRINT
输出。)另外,新的方法是使用SQL和DB2 for i目录和服务。我在库中查找物理文件列表,但这并没有给我这个info@uSeruSher-他们会给你你需要的。你试过什么?如果使用DSPOBJD,请不要忘记可以使用
*ALL
作为对象名。就个人而言,我不喜欢API,尤其是当您必须从头开始构建调用时。(如果你已经有了包装纸,情况就不一样了。)“老派”的方式更简单,不应该气馁。(这是一种不鼓励使用的刮削
*PRINT
输出。)另外,新方法是使用SQL和DB2 for i目录和服务。我将您的信息添加到我的答案中我将您的信息添加到我的答案中