带有SQL的文件中的源成员列表

nea*_*ime 9 sql ibm-midrange

是否可以使用SQL生成iSeries源文件中所有源成员的列表?

可能类似于从SYSTABLES和SYSCOLUMNS获取表定义,但到目前为止我找不到任何东西.

Joh*_*n Y 9

自提出其他答案以来,系统目录中添加了更多表和视图.现在,您可以获取给定文件(aka表)的成员列表(在SQL术语中称为"分区"),如下所示:

SELECT TABLE_PARTITION FROM SYSPARTITIONSTAT
WHERE TABLE_NAME = myfile AND TABLE_SCHEMA = mylib
Run Code Online (Sandbox Code Playgroud)

您还可以从其中获取其他信息,SYSPARTITIONSTAT例如每个成员中的行数,以及上次更改,保存,还原或使用的时间戳.


squ*_*fox 5

遗憾的是,SQL对成员一无所知,因此您可以从qsys2.syscolumns中获得的所有sourcefile-info都是,它们由三列组成。

您需要成员信息,我建议将qshell(STRQSH)连同对qsys2.systables的查询一起使用,因为源文件已在此处特别标记。

select table_schema , table_name from qsys2.systables where File_type = 'S'
Run Code Online (Sandbox Code Playgroud)

我为了复制和粘贴目的而拼凑了一个qshell单线..

db2 -S "select '/QSYS.LIB/' concat table_schema concat '.LIB/' concat table_name concat '.FILE' from qsys2.systables where File_type = 'S'" | grep '/' | xargs -n1 find >/home/myuser/myfile                                                                            
Run Code Online (Sandbox Code Playgroud)

它将找到的每个成员传送到IFS目录/ home / myuser / myfile中,您也可以指定Sourcefile成员。随时修改您的需求。

PS:直接在/QSYS.LIB中的Sourcefiles会引发错误,但我认为您还是不想要这些。

照顾自己!:)