是否可以使用SQL生成iSeries源文件中所有源成员的列表?
可能类似于从SYSTABLES和SYSCOLUMNS获取表定义,但到目前为止我找不到任何东西.
自提出其他答案以来,系统目录中添加了更多表和视图.现在,您可以获取给定文件(aka表)的成员列表(在SQL术语中称为"分区"),如下所示:
SELECT TABLE_PARTITION FROM SYSPARTITIONSTAT WHERE TABLE_NAME = myfile AND TABLE_SCHEMA = mylib
您还可以从其中获取其他信息,SYSPARTITIONSTAT
例如每个成员中的行数,以及上次更改,保存,还原或使用的时间戳.
遗憾的是,SQL对成员一无所知,因此您可以从qsys2.syscolumns中获得的所有sourcefile-info都是,它们由三列组成。
您需要成员信息,我建议将qshell(STRQSH)连同对qsys2.systables的查询一起使用,因为源文件已在此处特别标记。
select table_schema , table_name from qsys2.systables where File_type = 'S'
我为了复制和粘贴目的而拼凑了一个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
它将找到的每个成员传送到IFS目录/ home / myuser / myfile中,您也可以指定Sourcefile成员。随时修改您的需求。
PS:直接在/QSYS.LIB中的Sourcefiles会引发错误,但我认为您还是不想要这些。
照顾自己!:)