2011-08-09 3 views
4

나는이 방법을 생성하고 데이터 세트 이름에 JCL 기호 데이터 집합을 삭제하기 위해 노력하고있어 설정 :패스 JCL 기호

// SET DATE=20110809 
//* DELETE DATASET 
//DEL01 EXEC PGM=IDCAMS 
//SYSPRINT DD SYSOUT=* 
//SYSIN DD * 
      DELETE DATASET.TEMP.&DATE    PURGE 
      SET MAXCC = 0 
//* CREATE DATASET 
//STEP01 EXEC PGM=IEFBR14 
//DELDD DD DSN=DATASET.TEMP.&DATE, 
//   DISP=(NEW,CATLG,DELETE) 

문제는 내가 JCL을 사용할 수 없다는 것입니다 (SYSIN DD *) 안에있는 기호. 데이터 세트가 이미 존재하므로 DISP = (MOD, DELETE, DELETE)를 사용할 수 없다는 것을 확신 할 수 없습니다. 다른 방법으로 데이터 세트를 삭제할 수 있습니까?

당신이 발견 한 것처럼 JCL 인라인 데이터 내에서 기호 대체를 지원하지 않습니다

답변

7

... 다음은 당신을 위해 일한다

:

//DEL01 EXEC PGM=IEFBR14   
//DELDD DD DSN=DATASET.TEMP.&DATE, 
//   DISP=(MOD,DELETE,DELETE), 
//   SPACE=(TRK,0)    

SPACE 매개 변수를 추가합니다. 데이터 세트가 존재하지 않으면 MOD 처분으로 인해 생성됩니다. 그런 다음 단계 완료시 삭제됩니다. 결과적으로이 단계 후에 명명 된 데이터 집합은 존재하지 않습니다.

// SET DATE=20110809 

다음은주는 일 8 자입니다 (최대 예선 길이) 그러나 그것은 시작 ( 와 알파벳 또는 국가 문자를 시작하지 않는 : 내가 볼

유일한 진짜 문제는 함께 숫자). 이로 인해 잘못된 데이터 집합 이름이 생성됩니다. 데이터 접두사를 추가하기 만하면 DATE 한정자가 너무 길어집니다. 이 문제에 대한 일반적인 접근 방식은 율리우스 력 날짜를 2011221과 같이 사용하는 것입니다. 줄리안 날짜 접두어는 이나 알파 또는 D2011221과 같은 국가 문자 앞에 붙입니다.

// SET DATE=D2011221 

그리고 모두가 해결해야 그래서 SET 지시어는 같은 될 것입니다.

+0

감사합니다! 실제로 인스 트림에 JCL 기호를 전달하지는 않지만 내 요구 사항에 실제로 맞습니다. – user823959

+0

DISP = OLD를 사용합니까? 나는 이것이 IEFBR14와 함께 사용 된 적이 없지만 그것이 작동 하는지를 짐작할 수있다. 그리고 ... 만약 우리가 이미 date를 참조하여 생성 된 데이터 셋을 참조하고 싶다면이 줄리안 날짜는 약간 혼란 스럽습니다. 실제 날짜는 YYMMDD 형식으로 만 사용할 수 있습니다. 그냥 제안! –

+1

@Raja Reddy. 여기서 'DISP = OLD'를 사용해서는 안됩니다. 데이터 세트가 아직 존재하지 않으면 단계가 실패합니다 (데이터 세트를 찾을 수 없음). 'DISP = MOD'가 아직 존재하지 않으면 데이터 세트를 생성합니다 - 그러면 삭제할 수 있습니다! 어리석은 것 같습니다 -하지만 이것이 작동하는 방식입니다. 반면에 데이터 셋이 이미 존재한다면'DISP = MOD'는 기존 데이터 셋을 사용하고 삭제할 것입니다. 단계가 완료된 후에는 데이터 집합이 존재하지 않습니다. – NealB

5

z/OS 2.1 (2013 년 9 월 30 일 출시)부터 DD 문에 SYMBOLS 키워드를 추가하면 JES2 인 스트림 데이터의 기호를 사용할 수 있습니다. 가능한 값은 :

  • SYMBOLS=JCLONLY는 : - 스트림 데이터 JCL JES 심볼들 및 심볼들을 대체.

  • SYMBOLS=EXECSYS : 작업 실행 중 시스템에 정의 된 JCL 기호, JES 기호 및 시스템 기호를 바꿉니다..

  • SYMBOLS=CNVTSYS : JCL 변환 동안 시스템에 정의 된 JCL 기호, JES 기호 및 시스템 기호를 바꿉니다.

기호를 내 보내야합니다.

// EXPORT SYMLIST=(DSN,VOL) 
// SET DSN='ABC.DATA',VOL='123456' 
//STEP1 EXEC PGM=USERPGM1 
//DATA  DD DSN=&DSN,DISP=SHR 
//SYSIN DD *,SYMBOLS=EXECSYS 
    SYSTEM=&SYSNAME,DSNAME=&DSN,VOLUME=&VOL 
    FUNCTION='&APPL_NAME' 
/* 

심볼 교체 로그 어디로 구성의 구문을 포함한 자세한 정보는, 참조 :

+1

z/OS에 대한 훌륭한 개발, 입력에 감사드립니다. – user823959