2017-05-05 4 views
1

라이브러리의 모든 실제 파일에 대한 최신 버전 이름을 표시하는 CL을 생성하려고합니다. 라이브러리 이름을 입력 매개 변수로 사용하면 모든 실제 파일의 이름을 어떻게 표시 할 수 있습니까? 일단 내가 이름을 얻으면, 나는 버전을 진행할 수 있지만 나는 이것에 붙어있다. 제발 제안 해주세요. 사전에CL : 라이브러리의 모든 실제 파일을 어떻게 트래버스 할 수 있습니까?

감사합니다 :)

답변

7

올드 스쿨 대답

표시 객체 설명 (DSPOBJD) 명령은 * OUTFILE을 받아 출력 PARM 있습니다. DCLF 구문에서 QADSPOBJ 모델 파일을 사용하고 명령을 사용하여 첫 번째 레코드를 읽으려면 OVRDBF을 사용하여 실제 출력 파일로 대체하십시오.

문제점은 출력 파일의 형식이 새 버전으로 변경되거나 PTF 응용 프로그램으로 변경 될 수 있다는 것입니다.

일반 현대 대답
사용 ILE CL과 객체 목록 (QUSLOBJ) API. 반환 된 데이터는 사용자 공간으로 덤프됩니다. 사용자 공간 API를 사용하여 ILE CL 프로그램 내에서 액세스 할 수 있습니다. 여기에 존 Y.에 의해 참조로 또한 SQL을 사용하여 시도 할 수 있습니다

표 (PF) (jmarkmurphy하여 응답에서 촬영) 특정 현대 대답
는 모든 실제 파일을 반환하는 쿼리입니다 라이브러리 :

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

라이브러리의 실제 파일 목록을 찾고 있는데,이 정보를 제공하지 않습니다. – uSeruSher

+1

@uSeruSher - 사용자가 필요한 것을 제공합니다. 너 뭐 해봤 니? DSPOBJD를 사용한다면'* ALL'을 객체 이름으로 사용할 수 있다는 것을 잊지 마십시오. –

+0

개인적으로, 나는 API의 팬이 아니며 특히 처음부터 호출을 작성해야하는 경우에 그렇습니다. (이미 포장재가있는 경우에는 다른 이야기가 있습니다.) "구식"방식은 더 간단하고 낙담해서는 안됩니다. (낙담해야하는'* PRINT' 결과물을 고치고 있습니다.) 또한 새로운 * 새로운 방법은 SQL과 DB2 for i 카탈로그와 서비스를 사용하는 것입니다. –

2

할 수도 존 Y.에 의해 참조 된 SQL을 사용해보십시오 여기 도서관에서 모든 실제 파일을 반환하는 쿼리입니다 :

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

table_type에는 SQL 테이블 인 'T'가 포함되어 있으며 DSPOBJD에는 실제 파일로 나타납니다. file_type은 데이터와 소스 파일을 구별합니다.

+0

내 대답에 귀하의 정보를 추가했습니다. – Charles