2010-07-12 6 views

답변

4

DISP=MOD

이 기존의 순차적 데이터 세트의 끝에 추가됩니다. 지정된 데이터 세트 아직 존재하지 않는 경우,

는 다음과 같은주의 (이 경우 DISP = MOD 및 DISP = NEW는 동일에) 생성됩니다 :

다중 볼륨 데이터 세트

DISP=MOD의 동작은 특정 볼륨을 지정하는지 여부에 따라 다릅니다. 당신이 DSNAME 매개 변수에 멤버 이름을 지정하면 당신은 규칙

분할 된 데이터 집합

reference 을 검토해야합니다, 멤버 이름 이미 존재하지 않아야합니다. 시스템은 데이터 세트의 끝에 끝에 읽기/쓰기 메커니즘을 위치시킵니다. 구성원 이름이 이미 존재하면 시스템은 작업을 종료합니다.

회원 이름을 지정하지 않으면 시스템은 데이터 세트 끝에 읽기/쓰기 메커니즘을 배치합니다. 시스템 은 디렉토리에 자동으로 항목을 작성하지 않습니다.

PDS/PDSE 멤버의 끝에 데이터를 추가하는 것은 약간의 트릭입니다. 일반적으로 에 새 레코드가 추가 된 전체 구성원을 삭제하고 다시 써야합니다.

순차 데이터 세트 및 COBOL OPEN 동사

일부 "상호 작용"JCL 및 COBOL OPEN 동사에 주어진 DISP 사이 이 있습니다. 당신이 당신의 JCL에 DISP=MOD을 지정하면

, COBOL 프로그램은 OPEN OUTPUTOPEN EXTEND 모두 순차적 데이터 세트의 끝에 레코드를 추가합니다.

JCL에서 DISP=OLD을 지정하면 COBOL 프로그램은 OPEN EXTEND에 대한 순차 데이터 세트의 끝에 끝에 레코드를 추가합니다. 순차적 데이터 집합을 OPEN OUTPUT으로 열면 데이터 집합의 원래 내용이 삭제되고 사실상 데이터를 빈 데이터 집합으로 다시 시작하게됩니다 (마치 삭제하고 다시 할당 한 것처럼).

VSAM 데이터 세트

가상 스토리지 액세스 방식 (VSAM) 파일 물고기의 완전히 다른 주전자입니다.

  • KSDS (키 시퀀스 된 데이터 세트)
  • ESDS (입력 시퀀스 된 데이터 세트)
  • RRDS (상대 기록 데이터 세트)
  • LSD (선형 공간 데이터 : VSAM 데이터 세트는 조직의 다양한 온 세트)

각 조직마다 고유 한 특성과 용도가 있습니다.

VSAM 데이터 세트는 COBOL 프로그램이 참조하기 전에 사전 정의되어야합니다. 이것은 종종 별도의 IDCAMS 직업으로 이루어집니다. VSAM 데이터 세트가 으로 정의되면 에 COBOL (또는 기타) 프로그램을 통해 액세스 할 수 있습니다. 이 reference은 에 COBOL에서 VSAM 데이터 세트를 조작하기위한 좋은 개요를 제공합니다. 섹션 Adding records to a VSAM dataset 은 COBOL 프로그램에서 VSAM 데이터 세트에 레코드를 추가하는 세부 사항을 다룹니다. 기존 ESDS 또는 KSDS VSAM 데이터 세트의 끝에 레코드를 추가하려면 COBOL open 문의 OPEN EXTEND 버전을 사용하십시오. KSDS 데이터 세트의 경우 레코드는 키와 관련하여 증가하는 순서로 추가되어야합니다.

VSAM 데이터 세트를 프로그램에 연결하는 데 사용되는 JCL은 실제로는 매우 간단하고 은 here입니다. DISP=MOD을 사용하면 기존 VSAM 데이터 세트의 경우 DISP=OLD과 동일합니다 (둘 중 하나만 사용하십시오 - 차이는 이됩니다). 데이터 집합을 업데이트하지 않고 다른 프로그램을 동시에 액세스하지 못하게하려면 DISP=SHR을 사용하십시오.

+0

안녕하세요 닐, 고맙습니다. DISP = MOD를 사용하면 파일을 열 때 커서가 이미 마지막 레코드에 위치합니다. – Saisha

+0

@Manasi 'DISP = MOD'를 사용하여 순차적 데이터 세트를 열면 데이터 세트의 마지막 레코드 다음에 읽기/쓰기 메커니즘이 배치됩니다. 프로그램에서 발행 한 다음 기록은 새 레코드를 데이터 세트에 추가합니다 (기존 레코드를 겹쳐 쓰지 않음). DISP = MOD는 데이터 세트에 쓰는 것을 의미합니다 (읽기와 반대). 참고 : "커서"라는 용어는 대개 데이터베이스 작업 (예 : 다중 행 SQL 쿼리와 관련하여 커서 위치)과 관련됩니다. 데이터 집합 연산의 경우 일반적으로 데이터 집합의 읽기/쓰기 위치를 참조합니다. – NealB

+0

감사합니다 닐, DISP = MOD를 사용하면 EXTEND 모드에서 파일을 열어야합니다. 맞습니까? DISP = OLD와 함께 EXTEND를 사용할 수 있습니까? 레코드를 추가하는 데 DISP = OLD를 사용하면 데이터 세트에서 내 읽기/쓰기 위치는 어디에 있습니까? – Saisha

관련 문제