1. MERGE
MERGE statement는 정렬된 파일들을 병합한다. 각 파일의 레코들은 KEY에 의해 정렬이 되어 있어야 한다.
다음은 statement의 각 설정 항목에 대한 설명이다.
-
file-name-1
-
SD entry에 기술된 이름이다.
-
-
ASCENDING KEY and DESCENDING KEY phrases
-
merge key가 오름차순인지 내림차순인지를 지정한다.
항목 설명 data-name-1
MERGE statement에서 사용될 KEY 데이터 항목을 기술한다. data-name-1은 file-name-1에 대한 레코드에 포함된 데이터 항목이어야 한다.
데이터 항목이 기술된 순서에 따라 왼쪽부터 중요도가 높은 키가 된다. 즉, 처음 기술된 데이터 항목이 가장 중요한 KEY가 되고, 그 다음 나오는 데이터 항목이 그 다음 중요한 키가 된다.
-
KEY 데이터 항목은 각 입력 파일에 대해서 물리적으로 같은 위치에 있어야 하고 data format도 같아야 한다. data-name이 같을 필요는 없다.
-
file-name-1이 하나 이상의 레코드가 기술되어 있다면 KEY 데이터 항목은 그중 하나의 레코드에 기술될 필요가 있다.
-
KEY 데이터 항목은 OCCURS clause를 포함할 수 없고 OCCURS를 포함한 item에 종속될 수 없다.
-
KEY 데이터 항목은 qualified될 수 있다.
KEY 데이터 항목은 다음 데이터 범주 중 하나가 된다.
-
Alphabetic, alphanumeric, alphanumeric-edited
-
Numeric
-
Numeric-edited (with usage DISPLAY)
-
Internal floating-point or display floating-point
-
-
-
-
COLLATING SEQUENCE phrase
-
MERGE statement 동작에서 key data 항목에 대한 alphanumeric 비교에 사용되는 조합 순서를 지정한다.
항목 설명 alphabet-name-1
반드시 SPECIAL-NAMES paragraph 의 ALPHABET clause에 정의되어 있어야 한다.
-
-
USING phrase
-
입력 파일들을 기술한다.
항목 설명 file-name-2,...
입력 파일들을 정의한다. USING phrase가 사용되면 입력 파일들(file-name-2,...,)의 모든 레코드들이 자동적으로 file-name-1으로 전송된다.
모든 입력 파일들은 Data division의 FD entries에 기술되어 있어야 한다.
-
-
GIVING phrase
-
출력 파일들을 기술한다.
항목 설명 file-name-3,...
출력 파일을 정의한다.
GIVING phrase가 기술되면 모든 정렬된 레코드들은 자동적으로 출력 파일로 전송된다. 모든 출력 파일들은 Data division의 FD entries에 기술되어 있어야 한다.
-
-
OUTPUT PROCEDURE phrase
-
병합 작업을 수행한 후 출력 레코드를 선택하고 수정하는 procedure 이름을 기술한다.
항목 설명 procedure-name-1
OUTPUT PROCEDURE의 첫 번째(또는 유일한) section이나 paragraph를 기술한다.
procedure-name-2
OUTPUT PROCEDURE의 마지막 section이나 paragraph를 기술한다.
-
OUTPUT PROCEDURE에는 RETURN statement가 있어 한 번에 하나의 레코드를 file-name-1이 참조하는 파일로부터 전송받는다. 이외에 다양한 구문(OPEN, WRITE, CLOSE, ...)을 사용함으로써 출력 레코드를 선택, 복사, 수정할 수 있다.
-
|
MERGE statement가 실행되면 file-name2, file-name3,...에 포함된 모든 레코드들이 기술된 KEY에 따라서 병합된다. |