OpenFrame

Similar documents
Tmax

개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - AnyLink Introduction v3.2.3.doc

Tibero

Microsoft PowerPoint - chap03-변수와데이터형.pptx

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

Microsoft PowerPoint - chap10-함수의활용.pptx

강의 개요

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

Microsoft PowerPoint - ch07 - 포인터 pm0415

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

FY2005 LIG

PowerPoint 프레젠테이션

[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step


INDUS-8.HWP

CONTENTS.HWP

개발및운영 Tibero Perl 연동

C++ Programming

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - additional01.ppt [호환 모드]

마리오와 소닉 리우 올림픽™

튜닝및모니터링 HP JVM 튜닝옵션

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx


버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

세계 비지니스 정보

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

우루과이 내지-1

USER GUIDE

11장 포인터

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

2012-민간네트워크-05_중국

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

API 매뉴얼

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Microsoft PowerPoint - chap11-포인터의활용.pptx

목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...

Visual Basic 반복문

Microsoft PowerPoint - chap01-C언어개요.pptx

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

사물인터넷비즈니스빅뱅_내지_11차_ indd

Microsoft PowerPoint - Java7.pptx

중간고사

JVM 메모리구조

OpenFrame

Microsoft Word - PLC제어응용-2차시.doc

Microsoft PowerPoint - chap11.ppt [호환 모드]

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

C++ Programming

설치및환경설정 Tibero tbprobe 사용법과원격지포트체크

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

윈백및업그레이드 Tibero Flashback 가이드

PowerPoint 프레젠테이션

ez-shv manual

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

untitled

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

BMP 파일 처리

슬라이드 1

PowerPoint Presentation

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Hardware Manual TSP100

OCW_C언어 기초

PowerPoint 프레젠테이션

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

슬라이드 1

00-1표지

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

chap 5: Trees

À̶õ°³È²³»Áö.PDF

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

설계란 무엇인가?

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

2007_2_project4

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Linux 권장커널파라미터 1. 커널파라미터별설명및설정방법 1.1 nofile ( max number of open files ) 설명 : 지원되는열린파일수를지정합니다. 기본설정이보통대부분의응용프로그램에대해충분합니다. 이매개 변수에설정된값이너무낮으면파일열기오류, 메모리

PowerPoint 프레젠테이션

C# Programming Guide - Types

로거 자료실

튜닝및모니터링 OS 별 TCP Recommend Parameter for WebtoB/JEUS

5장 SQL 언어 Part II

사 업 보 고 서 (제 181 기) 사업연도 2012년 01월 01일 2012년 12월 31일 부터 까지 금융위원회 한국거래소 귀중 회 사 명 : (주) 신한은행 대 표 이 사 : 서진원 본 점 소 재 지 : 서울특별시 중구 세종대로 9길 20 (전 화)

Tcl의 문법

Frama-C/JESSIS 사용법 소개

160215

Tibero

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Transcription:

OpenFrame SORT 유틸리티참조안내서 OpenFrame/Batch for VOS3 2.0 Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved.

Copyright Notice Copyright 2009 TmaxSoft Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 263 분당스퀘어 (AK 프라자 ) 12 층우 )463-824 Restricted Rights Legend All TmaxSoft Software (Tmax OpenFrame ) and documents are protected by copyright laws and the Protection Act of Computer Programs, and international convention. TmaxSoft software and documents are made available under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd. 이소프트웨어 (Tmax OpenFrame ) 사용설명서의내용과프로그램은저작권법, 컴퓨터프로그램보호법및국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxSoft Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 Tmaxsoft의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tmax and Tmax OpenFrame are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tmax 와 Tmax OpenFrame 은 TmaxSoft Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. Open Source Software Notice This product includes open source software developed and/or licensed by "OpenSSL", "RSA Data Security, Inc.", "Apache Foundation", and "Jean-loup Gailly and Mark Adler". Information about the aforementioned and the related open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory. 본제품은 OpenSSL, RSA Data Security, Inc., Apache Foundation 및 Jean-loup Gailly와 Mark Adler 에의해개발또는라이선스된오픈소스소프트웨어를포함합니다. 관련상세정보는제품의디렉터리 ${IN STALL_PATH}/license/oss_licenses 에기재된사항을참고해주십시오. 안내서정보안내서제목 : OpenFrame SORT 유틸리티참조안내서발행일 : 2009-10-30 소프트웨어버전 : OpenFrame/Batch for VOS3 2.0 안내서버전 : v2.1.1

내용목차 안내서에대하여... v 제1장 개요... 1 1.1. 유틸리티기능... 1 1.2. SORT 제어문... 2 1.2.1. 작업제어문... 2 1.2.2. 데이터셋정의... 3 1.3. 유틸리티목록... 5 제2장 SORT 유틸리티... 7 2.1. ALTSEQ... 7 2.1.1. 사용법... 7 2.1.2. 오퍼랜드... 7 2.2. END... 8 2.2.1. 사용법... 8 2.3. INCLUDE/OMIT... 8 2.3.1. 사용법... 8 2.3.2. 오퍼랜드... 9 2.4. INREC... 11 2.4.1. 사용법... 11 2.4.2. 오퍼랜드... 11 2.5. MERGE... 13 2.5.1. 사용법... 13 2.5.2. 오퍼랜드... 13 2.5.3. 옵션... 16 2.6. MODS... 17 2.6.1. 사용법... 17 2.6.2. 오퍼랜드... 17 2.7. OPTION... 19 2.7.1. 사용법... 19 2.7.2. 오퍼랜드... 19 2.8. OUTFIL... 20 2.8.1. 사용법... 20 2.8.2. 오퍼랜드... 20 2.9. OUTREC... 22 2.9.1. 사용법... 22 2.9.2. 오퍼랜드... 22 2.10. RECORD... 24 2.10.1. 사용법... 24 2.10.2. 오퍼랜드... 24 2.11. SORT... 25 2.11.1. 사용법... 25 OpenFrame iii

2.11.2. 오퍼랜드... 25 2.11.3. 옵션... 28 2.12. SUM... 30 2.12.1. 사용법... 30 2.12.2. 오퍼랜드... 30 iv OpenFrame SORT 유틸리티참조안내서

안내서에대하여 안내서의대상 본안내서는리호스팅솔루션인 Tmax OpenFrame ( 이하 OpenFrame)/Batch 시스템을사용하는사용자 를대상으로기술한다. 안내서의전제조건 본안내서를정확히사용하려면 OpenFrame/Batch 의개념을이해하고있어야한다. OpenFrame/Batch 에 대한이해를돕기위해 OpenFrame 안내서중 Batch 안내서 를먼저숙지할것을권장한다. 안내서의제한조건 본안내서에서는유틸리티에서현재지원하지않는기능, 옵션, 파라미터에대해별도로표기하였으며이 에대한설명은생략한다. 안내서에대하여 v

안내서구성 SORT 유틸리티참조안내서는총 2개의장으로구성되어있다. 각장의주요내용은다음과같다. 제1장 : 개요 SORT 유틸리티의기능, 목록에대해기술한다. 제 2 장 : SORT 유틸리티 SORT 유틸리티프로그램을사용하여 SORT 작업을수행하는방법에대해기술한다. vi OpenFrame SORT 유틸리티참조안내서

안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트, 다른장및절참고메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참조또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값옵션인수값선택인수값반복지정 안내서에대하여 vii

시스템사용환경 요구사항 Platform IBM AIX 5.x HP-UX 11.xx Solaris 9 (SunOS 5.9) Linux IA64 2.6.x Hardware 최소 120MB 하드디스크공간 256MB 이상메모리공간 1GB 이상하드디스크와 512MB 이상메모리공간권장 Database Tibero 3.0 Oracle 9i 또는 10g Compiler COBOL2002 컴파일러 viii OpenFrame SORT 유틸리티참조안내서

관련안내서 안내서 OpenFrame 설명 OpenFrame/Batch 를구성하는전반적인기능에대해기술한안내서이다. Batch 안내서 OpenFrame JCL 문법안내서 OpenFrame 유틸리티참조안내서 OpenFrame 시스템의 VOS3 JCL의문법지원사항과상세내용에대해서기술한안내서이다. OpenFrame 엔진과함께제공되는다양한유틸리티프로그램에대해기술된안내서이다. 안내서에대하여 ix

연락처 Korea TmaxSoft Co., Ltd 263 BundangSquare (AK Plaza) 12th floor, Seohyeon-dong, Bundang-gu, Seongnam-si, Gyeonggi-do, 463-824 South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr Web (Korean): http://www.tmax.co.kr 기술지원 : http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632 U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info@tmaxsoft.co.jp Web (Japanese): http://www.tmaxsoft.co.jp x OpenFrame SORT 유틸리티참조안내서

China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027 China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn 안내서에대하여 xi

제 1 장개요 SORT는입력데이터셋 (SORTIN, SORTINnn) 을주어진명령에따라정렬, 병합, 복사, 필터링, 재편집, 합산등을수행하여출력데이터셋 (SORTOUT, OUTFIL 데이터셋 ) 을생성하는 Hitachi Mainframe의 XSORT에대응하는유틸리티프로그램이다. 이유틸리티는 3rd Party SORT 솔루션으로 TmaxSoft 사의 ProSort를지원하여동작한다. 1.1. 유틸리티기능 다음은 SORT 유틸리티의주요기능이다. SORT 정렬을수행하기위한입력데이터셋의레코드를주어진키에따라오름차순혹은내림차순으로정렬하여출력데이터셋으로출력한다. MERGE SORTINnn 에주어진입력데이터셋에대하여병합기능을수행하기위해주어진키로이미정렬된 2 개이상의입력데이터셋을하나의정렬된출력데이터셋으로병합하여출력한다. COPY 복사를수행하기위하여입력데이터셋의모든레코드를출력데이터셋으로복사한다. 다음은주요기능이외에 SORT 유틸리티로수행할수있는기능이다. 입력레코드필터링 (Conditional Input Filtering) 입력레코드재편집 (Input Record Reformatting) 을수행하기전에 INCLUDE, OMIT, SKIPREC, STOPAFT 으로주어진조건을만족하는입력레코드만을포함하거나제외하는방법으로필터링할수있다. 입력레코드재편집 (Input Record Reformatting) SORT/MERGE/COPY를수행하기전에 INREC으로입력레코드필터를통과한레코드를주어진형식에따라재편집한다. 이러한과정을통해입력레코드에서불필요한필드를제거하여실제로 SORT/MERGE/COPY를수행할때성능을향상시킬수있다. 제 1 장개요 1

필드합산 (Field Summation) SORT/MERGE를수행하면서키값이일치한다고판명된하나이상의레코드에대해 SUM을이용하여주어진필드의값을모두더한다. 옵션으로 EQUALS가설정되어있으면필드의값을모두더한후키값이동일한레코드들중 1번째레코드만 SORTOUT으로지정된출력데이터셋으로출력된다. 출력레코드재편집 (Output Record Reformatting) SORT/MERGE/COPY 를수행한후 OUTREC 을이용하여주어진형식에따라레코드를재편집한다. 재 편집한레코드가 SORTOUT 으로출력되거나 OUTFIL 의입력레코드가된다. 출력레코드복사 (Output Duplication) OUTFIL을이용하여 SORTOUT으로쓰여질레코드를입력레코드로하여여러개의 OUTFIL DD로출력하는역할을한다. 입력레코드필터링과출력레코드재편집과정이이단계에서다시적용될수있다. 1.2. SORT 제어문 본절에서는 SORT 제어문에대해설명한다. 1.2.1. 작업제어문 작업제어문은크게 JOB 문, EXEC 문, DD 문, /* 문등으로이루어져있다. 참고 JCL 문법에대한자세한설명은 OpenFrame 안내서중 "JCL 문법안내서 " 를참고한다. JOB 문 작업의선두에위치하는제어문이며, 작업의시작을알림과동시에그작업의성격을정의한다. 기술방법의예는다음과같다. //SORT00 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1) EXEC 문하나의 JOB은여러개의 STEP으로이루어져있으며, EXEC 문은 JOB STEP의선두에위치한다. 프로그램의명칭및프로그램에전달할파라미터등을지정한다. 기술방법의예는다음과같다. //SORT EXEC PGM=SORT,REGION=2M 2 OpenFrame SORT 유틸리티참조안내서

DD 문 SORT 를실행할때사용하게되는데이터셋의명칭, 속성등을다음항목을통해지정한다. 항목 SYSIN SYSOUT SORTIN SORTINnn SORTINWKnn SORTOUT SORTOFxx 설명 SORT의제어문을입력하기위한데이터셋이다. 일반적으로 DD * 로시스템입력스트림을이용한다. 제어문의리스팅및메시지를출력하기위한데이터셋이다. 일반적으로시스템의출력스트림을이용한다. SORT/COPY 처리의입력데이터셋이다. MERGE 처리의입력데이터셋이다. 데이터셋의이름은반드시 SORTIN01부터순서대로정의할필요는없으나, 같은번호를중복하여사용할수는없다. SORT 처리중에작업용영역으로사용하는데이터셋이다. SORT/MERGE/COPY 처리결과를출력하는데이터셋이다. SORTIN 또는 SORTINnn이고정길이 (FB) 이면 SORTOUT도고정길이, SORTIN 또는 SORTINnn 이가변길이 (VB) 이면 SORTOUT도가변길이여야한다. 입력이 NVSM인레코드를 VSAM 레코드로출력하거나, VSAM 레코드를 NVSM 레코드로출력하는것도가능하다. OUTFIL로레코드를재편집할때복수의출력데이터셋으로출력할때의데이터셋이다. xx는 1문자혹은 2문자로구성된임의의영문자나숫자이다. /* 문 SYSIN 데이터셋의종료를지정한다. SORT 제어문의 END 를사용하여종료를지정할수도있다. 1.2.2. 데이터셋정의 다음은데이터셋정의에일반적으로필요한오퍼랜드이다. 데이터셋명 DCB DISP DSN LABEL SPACE UNIT VOL AMP SORTIN 1 2 Ⅹ 3 3 7 SORTINnn 1 2 5 3 3 7 SORTOUT 1 4 2 5 3 6 7 SORTOFxx 1 4 2 5 3 6 7 SORTWKnn Ⅹ 4 4 Ⅹ 5 3 6 Ⅹ : 반드시지정해야한다. Ⅹ: 지정하지않아도된다. 제 1 장개요 3

1: 경우에따라지정할필요가있다. 2: 디스크상에서는불필요하다. 3: 현재 JOB STEP 이전에작성및카탈로깅되어있다면필요없으나그렇지않다면지정해야한다. 4: 임시데이터셋이아니라면지정해야한다. 5: 직접액세스장치상에작성하는경우에는지정해야한다. 6: 임시데이터셋인경우, 현재 STEP 이전에작성되고카탈로깅된경우, 동일 JOB 내의다른 STEP 으 로부터전달받은경우를제외하고는지정해야한다. 7: VSAM 데이터셋의경우에는지정할수있으나다른경우에는필요하지않다. DCB 오퍼랜드의서브파라미터 입출력데이터셋이 VSAM 데이터셋이아닌경우, 레코드형식 (RECFM), 레코드길이 (LRECL), 블록크 기 (BLKSIZE) 의정보를지정해주어야한다. 항목레코드형식 (RECFM) 레코드길이 (LRECL) 블록크기 (BLKSIZE) 설명데이터셋에기록되어있는레코드의형식을지정한다. 데이터셋에기록되어있는레코드의논리적인최대길이를 Byte로지정한다. 데이터셋에기록되어있는레코드의물리적인최대길이를 Byte로지정한다. 위의정보의지정은다음순서에따라결정된다. 1. RECFM, LRECL, BLKSIZE 가 DD 문의 DCB 오퍼랜드로지정되어있으면그정보를사용하고다른정 보는무시한다. 2. 입력데이터셋의경우, DCB 오퍼랜드가지정되어있지않다면에러가발생한다. 단, 기존에이미데이터셋이존재하는경우에는기존의정보를사용한다. 출력데이터셋의경우에 DCB 오퍼랜드의지정이없다면다음순서로지정된다. a. OUTREC에서지정된정보를오버라이드하여사용한다. b. RECORD 를통해지정된정보를오버라이드하여사용한다. c. INREC 에서지정된정보를오버라이드하여사용한다. d. 입력데이터셋에서지정된정보를오버라이드하여사용한다. 4 OpenFrame SORT 유틸리티참조안내서

1.3. 유틸리티목록 다음은 OpenFrame 이제공하는 SORT 유틸리티의목록이다. 유틸리티 ALTSEQ END INCLUDE/OMIT INREC MERGE MODS OPTION OUTFIL OUTREC RECORD SORT SUM 설명 ALTSEQ 변환테이블을이용하여 SORT, MERGE, COPY를수행할때특정문자들을원하는순서로변경한다 SORT 문의마지막을나타낸다. INCLUDE 문은설정된조건을만족하는레코드만을가지고 SORT/MERGE 를수행하며, OMIT 문은설정된조건을만족하는레코드들을제외한나머지레코드만을가지고 SORT/MERGE를수행한다. SORT/MERGE/COPY를수행하기전에주어진형식에따라입력레코드를재편집 (reformatting) 한다. SORTINnn에기술한 nn개의입력데이터셋을출력데이터셋으로병합할때사용한다. MODS 제어문을사용한스크립트를통해사용자함수를등록할수있다. SORT 또는 MERGE 처리에대한정보를지정한다. SORTOUT을여러개의 outfil DD에기술한데이터셋에저장한다. SORT/MERGE/COPY를수행하고난후 SORTOUT이나 OUTFIL에서지정한데이터셋으로결과를출력하기전에출력레코드를재편집 (reformatting) 한다. 레코드의형식및길이를지정한다. 입력데이터셋의레코드를주어진키에따라오름차순혹은내림차순으로정렬하여출력데이터셋으로출력한다. SORT/MERGE를수행할때동일한키값을가진레코드들에대해주어진필드의값들은모두합치고하나의레코드로합산한다. 각유틸리티의사용법및오퍼랜드는해당절에서자세히설명한다. 제 1 장개요 5

제 2 장 SORT 유틸리티 본장에서는 SORT 유틸리티의사용법및오퍼랜드에대해기술한다. 2.1. ALTSEQ ALTSEQ 변환테이블을이용하여 SORT, MERGE, COPY를수행할때특정문자들을원하는순서로변경한다. 이에따라키의순서를바꾸거나필터링조건을다르게적용할수있다. XSORT에서는 EBCDIC 순서를사용하고있으나 OpenFrame에서는 EBCDIC을사용하지않으므로 ASCII 순서를따른다. 주의 순서의변경사항은 SORT 또는 MERGE 를실행할때에만적용될뿐레코드의출력내용이바뀌지는 않는다. 2.1.1. 사용법 다음은 ALTSEQ 문의사용법이다. ALTSEQ CODE=(xxyy,xxyy,...,xxyy) 2.1.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. CODE 변경할기존문자와변경될새로운문자순서를지정한다. 변경하기를원하는문자에대해 xxyy에지정한것에따라순서변경작업을수행한다. xx 순서를변경하고자하는문자를 16진수의 2자리수로지정한다. yy 새롭게변경될순서를지정한다. 제 2 장 SORT 유틸리티 7

다음은 SORT 를수행할때 1(ASCII 번호 : 31) 의순서를 a(ascii 번호 : 61) 로변경하여오름차순으로정렬 하는예제이다. SORT FILEDS=(1,8,AQ,A) ALTSEQ CODE=(3161) 2.2. END SORT 문의마지막을나타낸다. END 문이후로는더이상명령어를처리하지않으며, END 문에대한부 가적인파라미터는없다. 참고 END 문은직후에 "/*" 또는그외의 JOB 제어문이있는경우에는생략이가능하다. 2.2.1. 사용법 다음은 END 문의사용법이다. END 2.3. INCLUDE/OMIT 입력레코드에대해서 SORT/MERGE를수행하기전에임의로조건을설정하는기능이다. INCLUDE 문은설정된조건을만족하는레코드만을가지고 SORT/MERGE를수행하며, OMIT 문은설정된조건을만족하는레코드들을제외한나머지레코드만을가지고 SORT/MERGE를수행한다. SORT/MERGE를수행하기전에입력레코드의크기를줄여작업효율을높일수있다. 주의 INCLUDE 와 OMIT 은함께지정할수없다. 2.3.1. 사용법 다음은 INCLUDE/OMIT 문의사용법이다. {INCLUDE OMIT} COND=[logical_expression [,FORMAT=f] logical_expression=relational_condition1,[and OR],[,relational_condition2[,...]] relational_condition=([(p1,m1,f1)],[eq NE GT GE LT LE],[(p2,m2,f2) constant]) 8 OpenFrame SORT 유틸리티참조안내서

2.3.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. COND SORT/MERGE를수행할레코드의조건을지정한다. SORT/MERGE/COPY를수행할입력레코드의조건을지정하는부분이다. logical_expression의각 re lational_condition을논리연산한값이참일때조건을만족한다. 논리연산자로 AND/OR을사용하며 2 개이상의 relational_condition을이논리연산자로결합한다. AND는 & 로, OR은 로각각치환하여사용할수있다. relational_condition 입력레코드에대한비교조건을지정한다. p 제어필드의시작위치를기술한다. - 입력레코드가고정길이 (FB) 인경우에는입력레코드의 1번째 Byte가 1이된다. - 입력레코드가가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte가첨가되어있으며 RDW의시작점이 1이되고실제레코드는 5부터시작된다. - 입력레코드가 VSAM 데이터셋이고 OpenFrame의 SORT에서이를가변길이레코드로처리할경우, RDW를레코드의앞에추가해주고그시작점을 1로한다. - OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) 레코드타입이 V로지정되어있는경우 2) SORTOUT의레코드형식이 V 타입인경우 3) SORTIN과 SORTOUT이모두 VSAM인경우 m 비교필드의시작점으로부터의상대적인길이를 Byte 로기술한다. f 제어필드의형식을기술한다. 다음은기술가능한형식과형식에따른길이에대한설명이다. 형식 설명 길이 부호 CH 문자 (ASCII) 1 to 32760Byte 없음 AC 문자 (ASCII) 1 to 32760Byte 없음 제 2 장 SORT 유틸리티 9

형식 설명 길이 부호 ZD (Zoned Decimal) Zone 형식의 10 진수 1 to 18Byte 있음 PD (Packed Decimal) Pack 형식의 10 진수 1 to 9Byte 있음 FI (Fixed-point) 고정소수점 2 진수 1 to 8Byte 있음 BI (Binary Integer) 2 진수 1 to 8Byte 없음 AQ 문자 (ALTSEQ 에서정의한순서 ) 1 to 32760Byte 없음 비교연산자 각비교필드들은비교연산자로결합되며비교연산자가지정하는조건을만족할때참이된다. 다음은비교연산자의종류이다. 비교연산자 EQ NE GT GE LT LE 설명필드 1 = 필드 2 필드 1 필드 2 필드 1 > 필드 2 필드 1 >= 필드 2 필드 1 < 필드 2 필드 1 <= 필드 2 constant 10 진수 (n, +n, -n), 문자열 (C xx x ), 16 진문자열 (X yy y ) 이기술가능하다. 주의 constant에서부호를붙이는경우에는반드시숫자의앞에붙여야한다. 또한문자열은반드시 apostrophe(') 로감싸야하며문자열안에 apostrophe(') 를포함하려면 apostrophe(') 를 2개연속으로써야한다. 다음은 logical_expression 을이용한 COND 의예제이다. CH 형식의 5 부터 8Byte 만큼의레코드가 CH 형식의 13 부터 8Byte 만큼의레코드보다크거나, 또는 BI 형식의 105 부터 4Byte 만큼의레코드가 1000 보다작거나같은경우그레코드를포함시킨다. INCLUDE COND=(5,8,CH,GT,13,8,CH,OR,105,4,BI,LE,1000) 10 OpenFrame SORT 유틸리티참조안내서

FORMAT=f relational_condition 의필드들의형식이모두같은경우필드내에서일일이형식을지정하지않고 COND 문뒤에서 FORMAT=f 를사용해한꺼번에지정할수있다. 다음은 FORMAT=f을이용한 COND의예제이다. CH 형식의레코드필드에대해서 5부터 1Byte와 8부터 1Byte가같거나, 10부터 1Byte가 A이고 20부터 1Byte가 10보다크거나, 30부터 1Byte가 A가아니고 B도아닌경우, 그레코드를제외시킨다. 모든필드들이 CH 형식이므로 FORMAT=CH로일괄지정한다. OMIT COND=((5,1,EQ,8,1),&, ((10,1,EQ,C A,&,20,1,GT,10),,(30,1,NE,C A,&,30,1,NE,C B ))), FORMAT=CH 주의 OpenFrame 에서는 FORMAT=f 을반드시 COND 오퍼랜드의뒤에서만지정할수있다. 또한 Open Frame 에서제어필드의형식이모두일치하는경우에만지정할수있다. 2.4. INREC INREC 은 SORT/MERGE/COPY 를수행하기전에주어진형식에따라입력레코드를재편집 (reformatting) 한다. 2.4.1. 사용법 다음은 INREC 문의사용법이다. INREC FIELDS=(reformat_command[,reformat_command[,...]]) reformat_command=[c:]p,m[,s] [c1:]p1,m1[,s1] [,cn:]pn,mn[,sn] [c:]p [c:]s 2.4.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FIELDS 입력레코드에서선택할키필드를지정한다. 여기서는키필드의시작위치와길이결정할수있다. 필드가여러개로지정되는경우뒤에지정되는필드는바로앞에지정된필드의뒤에붙어서출력레코드로재편집된다. 가변길이레코드 (VB) 의경우재편집결과레코드의길이가변경되면레코드기술어 (RDW) 의내용도그에따라변경된다. 제 2 장 SORT 유틸리티 11

p 키필드의시작위치를기술한다. 입력레코드가 NVSM 고정길이 (FB) 인경우에는입력레코드의 1 번째 Byte 가 1 이된다. 입력레코드가 NVSM 가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte 가첨 가되어있으며 RDW 의시작점이 1 이되고실제레코드는 5 부터시작된다. 입력레코드가 VSAM 데이터셋이고 OpenFrame SORT 에서이를가변길이레코드로처리할경우, RDW 를레코드의앞에추가해주고그시작점을 1 로한다. 따라서 SORT 를수행할때실제데이터 는 5 부터시작된다. OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) RECORD TYPE=V로지정되어있는경우 2) SORTOUT이 RECFM=VB로지정된경우 3) SORTIN과 SORTOUT이모두 VSAM인경우 주의 VB 레코드의경우 1번째키필드를기술할때항상 p를 1로지정해야하며 1번째키필드는반드시 RDW를포함해야한다. 1번째필드를 1에서 4까지지정한후다음필드를지정하거나 1번째필드가 1부터시작하여 4 이상의열까지지정되어야한다. 단, 후자의경우실제레코드는 5부터시작한다는점을염두해야한다. m 선택필드의길이를 Byte 수로지정한다. c: c: 옵션바로다음에올필드의재편집된입력레코드에서의시작위치를지정한다. FB의경우는레코드의선두를, VB의경우는 RDW의선두를각각 1로한다. c: 로지정하는위치는이전의선택필드나삽입된공백과겹쳐질수없으며, 이옵션으로인해정의되지않는구간이생긴다면그구간은빈칸으로채워진다. s Separation 필드로문자열이나공백을기술한다. 문자열의경우 kc xxxx 의형태로 apostrophe(') 안의문자열을 k번기술한다. kx는공백을기술하라는의미이며 k개의공백을삽입하게된다. kx yyyy 로 apostrophe(') 안에 16진수문자열을 k번지정할수도있다. 12 OpenFrame SORT 유틸리티참조안내서

다음은고정길이레코드의 5Byte 부터 30Byte 만큼을입력레코드로재편집하는예제이다. INREC FIELDS=(5, 30) 다음은가변길이레코드의 50Byte 이후를입력레코드로재편집하는예제이다. INREC FIELDS=(1,4,50) 다음은가변길이레코드의 5Byte 부터 10Byte 만큼을선택하여재편집하는예제이다. INREC FIELDS=(1,4,5,10) 위의제어문은다음과같이쓸수도있다. INREC FIELDS=(1,14) 다음은입력레코드의 1부터 6Byte만큼재편집하고그뒤에 underbar(_) 를첨가하는예제이다. 재편집된입력레코드의 10번째열부터 0 9개를삽입하고그뒤에공백문자 10개를삽입한다. 재편집된레코드의 30번째열부터입력레코드의 7부터 5Byte만큼기술하고, 그뒤로입력레코드의 8Byte 이후의레코드들을기술한다. INREC FIELDS=(1,6,C'_',10:9C'0',10X,30:7,5,8) 2.5. MERGE SORTINnn에기술한 nn개의입력데이터셋을출력데이터셋으로병합할때사용한다. 이때 SORTIN으로사용되는입력데이터셋들은모두이미정렬이되어있는레코드들이어야한다. 정렬이되어있다는것은병합을수행할키필드에대해동일한정렬기준이적용된경우를의미한다. 2.5.1. 사용법 다음은 MERGE 문의사용법이다. MERGE FIELDS=(p,m,f,s[p,m,f,s[,...]]) (p,m,s[p,m,s[,...]]), FORMAT=f COPY[,option[,option[,...]]] 2.5.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FIELDS 제 2 장 SORT 유틸리티 13

입력레코드를병합하기위한키필드를지정한다. 여기서는 SORT와마찬가지로키필드의시작위치와길이, 형식, 병합기준을결정할수있다. p 제어필드의시작위치를기술한다. 입력레코드가 NVSM 고정길이 (FB) 인경우에는입력레코드의 1번째 Byte가 1이된다. 입력레코드가 NVSM 가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte 가첨 가되어있으며 RDW 의시작점이 1 이되고실제레코드는 5 부터시작된다. 입력레코드가 VSAM 데이터셋이고 OpenFrame SORT 에서이를가변길이레코드로처리할경우, RDW 를레코드의앞에추가해주고그시작점을 1 로한다. 따라서 MERGE 를수행할때실제데이 터는 5 부터시작된다. OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) RECORD TYPE=V로지정되어있는경우 2) SORTOUT이 RECFM=VB로지정된경우 3) SORTIN과 SORTOUT이모두 VSAM인경우 m 제어필드의길이를기술한다. f 제어필드의형식을기술한다. 기술가능한형식과형식에따른길이는 SORT 의경우와동일하다. s 제어필드의정렬기준을기술한다. A(Ascending order) 는오름차순을, D(Descending order) 는내림차순을각각의미한다. 다음은 FIELDS의예제이다. 예제 1 포맷형식이문자인고정길이레코드의 1번째 Byte에서시작하여 7Byte까지의내용을오름차순으로병합한다. MERGE FIELDS=(1,7,CH,A) 14 OpenFrame SORT 유틸리티참조안내서

예제 2 가변길이레코드의경우 1 부터 4 까지의 RDW 를제외하고실제레코드의선두인 5 부터 3Byte 만큼의 문자형식의레코드를내림차순으로병합한다. MERGE FIELDS=(5,3,CH,D) 주의가변길이레코드의경우 RDW를제외한레코드의선두는 5이다. 만약병합시작점을 1에서 4 사이에지정하였을경우에러가발생하지는않으나 RDW가포함되므로병합이정상적으로수행되지않는다. FORMAT=f 제어필드의형식이모두일치하는경우에는제어필드내부에서형식을지정하지않고외부에서 FOR MAT=f 명령을사용하여한꺼번에지정할수있다. 다음은 FORMAT 의예제이다. 2 개의 CH 형식의고정길이제어필드를지정한다. 레코드의처음 1Byte 에서 10Byte 만큼오름차순으로 정렬하고, 11Byte 부터 10Byte 만큼내림차순으로병합한다. MERGE FIELDS=(1,10,A,11,10,D),FORMAT=CH 주의 OpenFrame에서 FORMAT=f 오퍼랜드는반드시제어필드의형식이모두일치해야만지정할수있다. 예를들어, 여러개의제어필드중한필드의형식만다르고나머지는모두같은경우, 형식이다른한필드만내부에서지정하고나머지필드의형식을외부에서 FORMAT=f로지정하면에러가발생한다. COPY COPY 명령은입력데이터셋레코드의내용을제어필드의지정없이출력데이터셋으로복사한다. 다음은 COPY 의예제이다. MERGE FIELDS=COPY 제 2 장 SORT 유틸리티 15

주의 MERGE에서 COPY 입력항목을지정하는경우 SORTIN은여러개를사용할수없다. SORT에서 COPY를수행하는것과마찬가지로, 입력레코드를그대로출력하는것이기때문에병합기능은수행하지않는다. 2.5.3. 옵션 제어필드의내용을기술한후다음과같은옵션을사용할수있다. SKIPREC=x 입력레코드의 1번째레코드에서부터몇개의레코드를정렬하지않고삭제 (discard) 할것인지를기술한다. x는레코드의개수를의미한다. SKIPREC는 COPY 명령을사용할때에만사용할수있다. 다음은 SKIPREC 의예제이다. 입력데이터셋의 1 번째레코드부터 5 번째레코드까지를제외한나머지레코드들을출력데이터셋에 복사한다. MERGE FIELDS=COPY,SKIPREC=5 STOPAFT=x 입력레코드의 1번째레코드에서부터몇개의레코드를병합할것인지를기술한다. 지정된숫자이후의레코드들은삭제 (discard) 된다. x는레코드의개수를의미한다. STOPAFT는 COPY 명령을사용할때에만사용할수있다. 다음은 STOPAFT 의예제이다. 입력데이터셋의 1 번째레코드부터 5 번째레코드까지를복사해서출력하고나머지레코드들은삭제한 다. MERGE FIELDS=COPY,STOPAFT=5 CKPT 체크포인트를지정하는기능으로, OpenFrame 에서는문법오류가발생하지않도록형식적으로만지원 한다. 16 OpenFrame SORT 유틸리티참조안내서

EQUALS/NOEQUALS 제어필드의내용이모두동일한레코드들이입력되었을경우출력순서를지정한다. EQUALS/NOE QUALS 에아무것도명시하지않으면기본값은 EQUALS 로설정된다. 구분 EQUALS NOEQUALS 설명 입력순서대로출력순서가결정 (stable sort) 된다. ( 기본값 ) 입력순서대로출력된다는보장이없음 (unstable sort) 을의미한다. 다음은 EQUALS/NOEQUALS 의예제이다. 제어필드의내용대로정렬을수행하되제어필드의내용이동일한레코드들의경우입력순서와동일 한순서로출력한다. MERGE FIELDS=(1,7,CH,A),EQUALS FILES=n MERGE 의입력파일수를 10 진수로지정한다. OpenFrame 에서는문법오류가나지않도록형식적으 로만지원한다. 2.6. MODS MODS 제어문을사용한스크립트를통해사용자함수 (user exit function) 를등록할수있다. 사용자함수는이전단계에서전달된레코드를편집하여다음단계로전달한다. SORT 및 COPY 연산에서는사용자함수 E15를등록하여입력되는레코드를편집할수있다. 사용자함수 E35는 OUTREC 결과레코드를편집할수있다. MERGE 연산은 E32로처리하나 OpenFrame에서는지원하지않는다. 2.6.1. 사용법 다음은 MODS 문의사용법이다. MODS exit=(n1,m1,s1,[,l1]),,exit=(nn,mn,sn,[ln]) 2.6.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. exit 등록할사용자함수의명칭을지정한다. OpenFrame에서는 E15와 E35만을지원하고있다. 제 2 장 SORT 유틸리티 17

함수 E15 E35 설명 SORT에서입력레코드를처리하는사용자함수로, 지정된입력데이터셋으로부터레코드를읽어들여사용자가지정한곳으로전달한다. 출력레코드를처리하는사용자함수로, SORT 또는 MERGE 후출력데이터셋으로전달되기전의레코드를제어한다. n 사용자함수의라이브러리내에서의멤버명을지정한다. m 사용자함수가사용하는저장공간의크기를 Byte 단위로지정하는항목으로 OpenFrame 에서는지 원하지않는다. s 사용자함수가위치한라이브러리의 DD 이름을지정한다. 만약사용자함수가입력스트림안에있 다면 SYSIN 을지정한다. L 사용자함수에대해 linkage editor 가필요한지를지정하는항목으로 OpenFrame 에서는지원하지않 는다. 다음은사용자함수의예제로, 모든레코드를그대로전달하는기능을한다. int EXIT(const void *rec_addr, const int rec_len, int file_no, void **ret_rec_addr, int *ret_rec_len) { if (rec_addr == NULL) return 8; /* do not return */ *ret_rec_addr = (void *) rec_addr; *ret_rec_len = rec_len; } return 0; /* no action */ 다음은모든레코드를복사해서삽입하는사용자함수예이다. 레코드 a, b, c 가이전단계에서전달되면 a, a, b, b, c, c 의형태로다음단계에전달된다. int INSERT(const void *rec_addr, const int rec_len, { int file_no, void **ret_rec_addr,int *ret_rec_len) 18 OpenFrame SORT 유틸리티참조안내서

static char buf[rec_len]; static int inserted = 0; /* insert된 record는편집하지않음 */ if (inserted) { inserted = 0; return 0; /* no action */ } if (rec_addr == NULL) return 8; /* do not return */ memcpy (buf, rec_addr, REC_LEN); *ret_rec_addr = buf; *ret_rec_len = rec_len; inserted = 1; } return 12; /* insert record */ 다음은 E15 에 EXIT 라는멤버명의함수를등록하고 E35 에 INSERT 라는멤버명의함수를등록하는예제 이다. 동적 linking 될라이브러리파일은 SYS1.JCLLIB 디렉터리에존재하며이디렉터리는 MYLIB 이라는 DD 이름으로지정되어있다. MYLIB DD DSN=SYS1.JCLLIB,DISP=OLD. MODS E15=(EXIT,3990,MYLIB), E35=( INSERT,3990,MYLIB) 2.7. OPTION SORT 또는 MERGE 처리에대한정보를지정한다. 2.7.1. 사용법 다음은 OPTION 문의사용법이다. OPTION {SORTDD=ddname prefix SORTIN=ddname} 2.7.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. SORTDD=ddname prefix 제 2 장 SORT 유틸리티 19

입력및출력데이터셋의 DD 이름중에서 SORT 로시작되는 DD 이름의앞 4 자리에쓸문자를지정한 다. 4 자리문자는영문자또는숫자로지정해야하며 1 번째자리는영문자여야한다. SORTIN=ddname SORTIN 데이터셋의 DD 이름을변경하고자하는경우, 변경할 DD 이름을지정한다. SORTDD 오퍼랜 드보다우선한다. 2.8. OUTFIL SORTOUT을여러개의 OUTFIL DD에기술한데이터셋에저장한다. 레코드를필터링하고재편집하기위해사용할수있다. 각출력데이터셋에같은레코드를출력할수있으며각출력레코드에대해다른편집을하여각자다른레코드를출력할수도있다. 2.8.1. 사용법 다음은 OUTFIL 문의사용법이다. OUTFIL param[,param[,...]] param = <FILES=sufix> INCLUDE OMIT OUTREC 2.8.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FILES=sufix OUTFIL의결과가저장될 DD명의식별자를지정한다. 복수의레코드를출력하는경우 prefix로 SORTOF 가디폴트로지정이되며 FILES 오퍼랜드를사용하여 1 문자또는 2 문자의식별자를첨부한다. 다른 OUTFIL 문의식별자와중복해서쓸수없으며, 오퍼랜드가생략된경우출력데이터셋의 ddname은 SORTOUT으로지정된다. 복수의데이터셋에동일한처리를하여같은레코드를출력하는경우, 예를들어 SORTOF01, SORTOF02, SORTOF03에같은내용을출력하는경우에는 FILES=(01,02,03) 과같이한꺼번에기술할수있다. INCLUDE/OMIT OUTFIL 처리중조건을만족하는레코드만을출력하거나 (INCLUDE), 조건을만족하는레코드만을제외하는 (OMIT) 것을지정한다. INCLUDE/OMIT 제어문에서는 "INCLUDE/OMIT COND=" 형식으로지정하지만 OUTFIL에서는 "INCLUDE/OMIT=" 형식으로조건을지정하는차이가있다. FORMAT=f 오퍼랜드로형식을지정할수없는것을제외하고는 INCLUDE/OMIT 제어문의사용법과동일하다. 20 OpenFrame SORT 유틸리티참조안내서

OUTREC OUTFIL 처리중레코드필터 (INCLUDE/OMIT) 를통과한레코드를 OUTFIL DD에기록하기전에지정한조건에맞게레코드의재편집 (reformatting) 을처리한다. 사용법은 "OUTREC COND=" 로지정하지않고 "OUTREC=" 로지정하는것을제외하면 OUTREC 제어문의사용법과동일하다. 다음은입력레코드를필터링하여 2 개의서로다른데이터셋으로출력하는예제이다. SORTOF01 에는 입력레코드의 10 에서 4Byte 만큼이 SORT 라는문자열을포함하는레코드들을출력하고, SORTOF02 에 는입력레코드의 10 에서 4Byte 만큼이 SORT 라는문자열을포함하지않는레코드들을출력한다. OUTFIL FILES=01, INCLUDE=(10,4,CH,EQ,C'SORT') OUTFIL FILES=02, OMIT=(10,4,CH,EQ,C'SORT') 다음은입력레코드를필터링하여 3 개의데이터셋에같은레코드를출력하는예제이다. SORTOF01, SORTOF02, SORTOF03 에각각 10 부터 4Byte 만큼이 SORT 라는문자열을포함하는레코드들을출력한 다. OUTFIL FILES=(01,02,03), INCLUDE=(10,4,CH,EQ,C'SORT') 다음은입력레코드를 1에서 7Byte만큼정렬하고정렬된레코드를 1에서 6Byte만큼출력하고그뒤에 underbar(_) 를추가하는예제이다. 출력레코드의 10번째열부터 9개의 0을삽입하고그뒤에 4를 1개추가한다. 그뒤로 8에서 1Byte만큼의레코드를출력한다. 이경우출력레코드의 DD명은 SORTOUT으로지정한다. SORT FIELDS=(1,7,CH,A) OUTFIL OUTREC=(1,6,C'_',10:9C'0',C'4',8,1) 제 2 장 SORT 유틸리티 21

2.9. OUTREC SORT/MERGE/COPY를수행하고난후 SORTOUT이나 OUTFIL에서지정한데이터셋으로결과를출력하기전에출력레코드를재편집 (reformatting) 한다. INREC이 SORT 처리를하기전의레코드에대해서재편집을수행하는것에비해 OUTREC은 SORT 처리를한후의레코드에대해서재편집기능을수행한다는점이다르다. 2.9.1. 사용법 다음은 OUTREC 문의사용법이다. OUTREC FIELDS=(reformat_command[,reformat_command[,...]]) reformat_command=[c:]p,m[,s] [c1:]p1,m1[,s1] [,cn:]pn,mn[,sn] [c:]p [c:]s 2.9.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FIELDS 출력레코드에서지정된데이터셋으로출력할키필드를지정한다. 여기서는키필드의시작위치와길이, 형식을결정할수있다. 키필드가여러개로지정되는경우뒤에지정되는필드는바로앞에지정된필드의뒤에붙어서출력데이터셋으로재편집된다. 가변길이레코드 (VB) 의경우재편집결과레코드의길이가변경되면레코드기술어 (RDW) 의내용도그에따라변경된다. p 키필드의시작위치를기술한다. 입력레코드가 NVSM 고정길이 (FB) 레코드인경우는입력레코드의 1번째 Byte가 1이된다. 입력레코드가 NVSM 가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte 가첨 가되어있으며 RDW 의시작점이 1 이되고실제레코드는 5 부터시작된다. 입력레코드가 VSAM 데이터셋이고 OpenFrame SORT 에서이를가변길이레코드로처리할경우, RDW 를레코드의앞에추가해주고그시작점을 1 로한다. 따라서 SORT 를수행할때실제데이터 는 5 부터시작된다. OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) RECORD TYPE=V로지정되어있는경우 2) SORTOUT이 RECFM=VB로지정된경우 22 OpenFrame SORT 유틸리티참조안내서

3) SORTIN 과 SORTOUT 이모두 VSAM 인경우 주의 VB 레코드의경우 1번째키필드를기술할때항상 p를 1로지정해야하며 1번째키필드는반드시 RDW를포함해야한다. 1번째필드를 1에서 4까지지정한후다음필드를지정하거나, 또는 1번째필드가 1부터시작하여 4 이상의열까지지정되어야한다. 단, 후자의경우실제레코드는 5부터시작한다는점을염두해야한다. m 선택필드의길이를 Byte 수로지정한다. c: c: 옵션바로다음에올필드의재편집된출력레코드에서의시작위치를지정한다. 단, FB의경우는레코드의선두를, VB의경우는 RDW의선두를각각 1로한다. c: 로지정하는위치는이전의선택필드나삽입된공백과겹쳐질수없으며, 이옵션으로인해정의되지않는구간이생긴다면그구간은빈칸으로채워진다. s Separation 필드로문자열이나공백을기술한다. 문자열의경우 kc xxxx 의형태로 apostrophe(') 안의문자열을 k번기술한다. kx는공백을기술하라는의미이며 k개의공백을삽입하게된다. kx yyyy 로 apostrophe(') 안에 16진수문자열을 k번지정할수도있다. 다음은고정길이레코드의 5Byte 부터 30Byte 만큼을출력하는예제이다. OUTREC FIELDS=(5, 30) 다음은가변길이레코드의 50Byte 이후의레코드를출력하는예제이다. OUTREC FIELDS=(1,4,50) 다음은가변길이레코드의 5Byte 부터 10Byte 만큼을선택하여출력하는예제이다. OUTREC FIELDS=(1,4,5,10) 위의제어문은다음과같이쓸수도있다. OUTREC FIELDS=(1,14) 다음은츨력레코드의 1 부터 6Byte 만큼재편집하고그뒤에 underbar(_) 를첨가하는예제이다. 재편집된 입력레코드의 10 번째열부터 0 9 개를삽입하고그뒤에공백문자 10 개를삽입한다. 재편집된레코드의 제 2 장 SORT 유틸리티 23

30 번째열부터입력레코드의 7 부터 5Byte 만큼기술하고, 그뒤로입력레코드의 8Byte 이후의레코드들 을출력데이터셋으로출력한다. OUTREC FIELDS=(1,6,C'_',10:9C'0',10X,30:7,5,8) 2.10. RECORD 레코드의형식및길이를지정한다. 2.10.1. 사용법 다음은 RECORD 문의사용법이다. RECORD [TYPE=[F V] [,LENGTH=[(L1) (L1,L2,L3,L4,L5)]] 2.10.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. TYPE 레코드의형식을지정한다. F는고정길이레코드 (FB) 를의미하고, V는가변길이레코드 (VB) 를의미한다. 입력데이터셋이 VSAM인경우에 TYPE을이용하여 FB 또는 VB로처리할수있다. 이때 F를지정하면입력레코드를그대로처리하고 V를지정하면입력레코드앞에 RDW를첨가하여처리한다. 입력데이터셋이 NVSM인경우에는입력데이터셋의 RECFM 정보를보고형식을결정하며 TYPE은무시한다. LENGTH 레코드의길이를지정한다. 고정길이레코드의경우에는 L1 부터 L3 까지, 가변길이레코드의경우에는 L1 부터 L5 까지를지정할수있다. L1 을제외하고는모두생략이가능하다. 항목 L1 설명 필수입력항목으로, 입력레코드의길이를지정한다. FB 의경우는입력레코드의길이를, VB 의경우는입력레코드의최대길이를지정한다. SORTIN 의 lrecl(logical record length) 이주어지지않았을때사용할수있다. 레코드제어 문자체가없는경우에는 DCB 파라미터내에정의된값을따른다. 24 OpenFrame SORT 유틸리티참조안내서

항목 L2 L3 L4 L5 설명 FB의경우에는 SORT 처리중의레코드길이를, VB의경우에는 SORT 처리중의레코드최대길이를지정한다. 생략할경우 L1에지정한값으로설정된다. OpenFrame에서는파싱까지만처리하며기능은지원하지않는다. FB의경우는출력레코드의길이를지정하며 VB의경우는출력레코드의최대길이를지정한다. INREC이나 OUTREC이있는경우에는처리후의길이를나타내며 INREC/OUTREC 이없을경우 L1의값이지정된다. 입력레코드의최소레코드길이를지정한다. OpenFrame에서는파싱까지만처리하며기능은지원하지않는다. 입력레코드의평균길이를나타낸다. 생략된경우에는 L1과 L4의평균으로설정된다. 단, MERGE 경우에는생략되어도다른값이설정되지않는다. OpenFrame에서는파싱까지만처리하며기능은지원하지않는다. 다음은레코드길이 200Byte 의고정길이레코드를지정하는예제이다. RECORD TYPE=F, LENGTH=(200) 다음은최대길이 100Byte, 최소길이 50Byte 의가변길이레코드를지정하는예제이다. RECORD TYPE=V, LENGTH=(100,,,50) 2.11. SORT 입력데이터셋의레코드를주어진키에따라오름차순혹은내림차순으로정렬하여출력데이터셋으로 출력한다. 2.11.1. 사용법 다음은 SORT 문의사용법이다. SORT FIELDS=(p,m,f,s[p,m,f,s[,...]]) (p,m,s[p,m,s[,...]]), FORMAT=f COPY[,option[,option[,...]]] 2.11.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FIELDS 제 2 장 SORT 유틸리티 25

입력레코드를정렬하기위한키필드를지정한다. 여기서는키필드의시작위치와길이, 형식, 정렬기준을결정할수있다. p 제어필드의시작위치를기술한다. 입력레코드가 NVSM 고정길이 (FB) 인경우에는입력레코드의 1번째 Byte가 1이된다. 입력레코드가 NVSM 가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte 가첨 가되어있으며 RDW 의시작점이 1 이되고실제레코드는 5 부터시작된다. 입력레코드가 VSAM 데이터셋이고 OpenFrame SORT 에서이를가변길이레코드로처리할경우, RDW 를레코드의앞에추가해주고그시작점을 1 로한다. 따라서 SORT 를수행할때실제데이터 는 5 부터시작된다. OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) RECORD TYPE=V로지정되어있는경우 2) SORTOUT이 RECFM=VB로지정된경우 3) SORTIN과 SORTOUT이모두 VSAM인경우 m 제어필드의길이를기술한다. f 제어필드의형식을기술한다. 다음은기술가능한형식과형식에따른길이에대한설명이다. 형식 설명 길이 부호 CH 문자 (ASCII) 1 to 32760Byte 없음 AC 문자 (ASCII) 1 to 32760Byte 없음 ZD (Zoned Decimal) Zone 형식의 10 진수 1 to 32760Byte 있음 PD (Packed Decimal) Pack 형식의 10 진수 1 to 32760Byte 있음 FI (Fixed-point) 고정소수점 2 진수 1 to 32760Byte 있음 FL (Floating-point) 부동소수점 10 진수 1 to 32760Byte 있음 BI (Binary Integer) 2 진수 1 to 32760Byte 없음 AQ 문자 (ALTSEQ 에서정의한순서 ) 1 to 32760Byte 없음 26 OpenFrame SORT 유틸리티참조안내서

s 제어필드의정렬기준을기술한다. A(Ascending order) 는오름차순을, D(Descending order) 는내림차순을각각의미한다. E는사용자순서변경을의미하나 OpenFrame에서는지원하지않는다. 다음은 FIELDS의예제이다. 예제 1 다음은포맷형식이문자인고정길이레코드의 1번째 Byte에서시작하여 7Byte까지의내용을오름차순으로정렬하는예제이다. SORT FIELDS=(1,7,CH,A) 예제 2 다음은가변길이레코드의경우 1 부터 4 까지의 RDW 를제외하고실제레코드의선두인 5 부터 3Byte 만큼의문자형식의레코드를내림차순으로정렬하는예제이다. SORT FIELDS=(5,3,CH,D) 주의가변길이레코드의경우 RDW를제외한레코드의선두는 5이다. 만약 SORT 시작점을 1에서 4사이에지정하였을경우에러가발생하지는않으나 RDW가포함되므로 SORT가정상적으로수행되지않는다. FORMAT=f 제어필드의형식이모두일치하는경우에는제어필드내부에서형식을지정하지않고외부에서 FOR MAT=f 명령을사용하여한꺼번에지정할수있다. 다음은 FORMAT의예제이다. 2개의 CH 형식의고정길이제어필드를지정한다. 레코드의처음 1Byte에서 10Byte만큼오름차순으로정렬하고, 11Byte부터 10Byte만큼내림차순으로정렬한다. SORT FIELDS=(1,10,A,11,10,D),FORMAT=CH 주의 OpenFrame에서 FORMAT=f 오퍼랜드는반드시제어필드의형식이모두일치해야만지정할수있다. 예를들어, 여러개의제어필드중한필드의형식만다르고나머지는모두같은경우, 형식이다른한필드만내부에서지정하고나머지필드의형식을외부에서 FORMAT=f로지정하면에러가발생한다. FORMAT=f를 FIELDS의뒤에쓰지않고앞에쓰는경우에도에러가발생하므로주의한다. 제 2 장 SORT 유틸리티 27

COPY COPY 명령은입력데이터셋레코드의내용을제어필드의지정없이출력데이터셋으로그대로복사 한다. 다음은 COPY 의예제이다. SORT FIELDS=COPY 2.11.3. 옵션 제어필드의내용을기술한후다음과같은옵션을사용할수있다. SIZE=[x Ex] 입력데이터셋중에서 SORT를수행할레코드의개수를지정한다. OpenFrame에서는문법적오류가발생하지않도록형식적으로만지원한다. FILSZ=[x Ex] SIZE가단순히입력데이터셋으로들어오는레코드만을고려하는것에비해 FILSZ는레코드의삽입 / 추가또는삭제등에의한레코드수의변화및 INCLUDE/OMIT 명령에의한레코드수의감소를고려하여 SORT할레코드의개수를지정한다. 본기능은 SIZE와마찬가지로문법적오류가발생하지않도록형식적으로만지원한다. SKIPREC=x 입력레코드의 1 번째레코드에서부터몇개의레코드를정렬하지않고삭제 (discard) 할것인지를기술 한다. x 는레코드의개수를의미한다. 다음은 SKIPREC 의예제이다. 입력데이터셋의 1 번째레코드부터 5 번째레코드까지를제외한나머지레코드들을제어필드에기술 한내용에따라정렬한다. SORT FIELDS=(1,7,CH,A),SKIPREC=5 STOPAFT=x 입력레코드의 1 번째레코드에서부터몇개의레코드를정렬할것인지를기술한다. 지정된숫자이후의 레코드들은삭제 (discard) 된다. x 는레코드의개수를의미한다. 28 OpenFrame SORT 유틸리티참조안내서

다음은 STOPAFT 의예제이다. 입력데이터셋의 1 번째레코드부터 5 번째레코드까지를제어필드에기술한내용에따라정렬하고나 머지레코드들은삭제 (discard) 한다. SORT FIELDS=(1,7,CH,A),STOPAFT=5 CKPT SORT 나 COPY 를사용할때체크포인트를지정하는기능으로, OpenFrame 에서는문법오류가발생하 지않도록형식적으로만지원한다. DYNALLOC [=([d][,n])] 작업용데이터셋을동적으로할당하는기능이다. 구분 d n 설명 동적할당을하는장치타입또는그룹명을지정한다. 동적할당을하는작업용데이터셋의개수를지정한다. OpenFrame 에서는문법적오류가발생하지않도록형식적으로만지원한다. EQUALS/NOEQUALS 제어필드의내용이모두동일한레코드들이입력되었을경우출력순서를지정해준다. EQUALS/NOEQUALS 에아무것도명시하지않으면기본값은 EQUALS 로설정된다. 구분 EQUALS NOEQUALS 설명 입력순서대로출력순서가결정 (stable sort) 된다. ( 기본값 ) 입력순서대로출력된다는보장이없음 (unstable sort) 을의미한다. 다음은 EQUALS/NOEQUALS 의예제이다. 제어필드의내용대로정렬을수행하되제어필드의내용이동일한레코드들의경우입력순서와동일 한순서로출력한다. SORT FIELDS=(1,7,CH,A),EQUALS 제 2 장 SORT 유틸리티 29

2.12. SUM SORT/MERGE를수행할때동일한키값을가진레코드들에대해주어진필드의값들은모두합치고하나의레코드로합산한다. 합산된후하나의레코드를제외한나머지레코드들은모두삭제된다. 또한키값이동일한레코드들의필드를합산하지않은채하나만남기고나머지레코드들을모두삭제하는기능도제공한다. 2.12.1. 사용법 다음은 SUM 문의사용법이다. SUM FIELDS=(p,m,f,[p,m,f[,...]]) (p,m[,p,m[,...]),format=f NONE 2.12.2. 오퍼랜드 다음은사용법에서설명된오퍼랜드에대한설명이다. FIELDS 입력레코드를합산하기위한키필드를지정한다. 여기서는키필드의시작위치와길이, 형식을결정할수있다. p 합산을수행할필드의시작위치를기술한다. 입력레코드가고정길이 (FB) 인경우에는입력레코드의 1번째 Byte가 1이된다. 입력레코드가가변길이 (VB) 인경우에는레코드의앞에레코드기술어 (RDW) 4Byte 가첨가되어 있으며 RDW 의시작점이 1 이되고실제레코드는 5 부터시작된다. 입력레코드가 VSAM 데이터셋이고 OpenFrame 의 SORT 에서이를가변길이레코드로처리할경 우, RDW 를레코드의앞에추가해주고그시작점을 1 로한다. OpenFrame SORT를수행할때 VSAM 데이터셋을고정길이레코드로판단할지가변길이레코드로판단할지의여부는다음을따른다. 1) RECORD TYPE=V로지정되어있는경우 2) SORTOUT이 RECFM=VB로지정된경우 3) SORTIN과 SORTOUT이모두 VSAM인경우 30 OpenFrame SORT 유틸리티참조안내서

m 합산할필드의길이를 Byte 단위로지정한다. f 합산필드의형식을지정한다. 다음은 ZD 형식의레코드를시작점 10 에서 10Byte 만큼합산하는예제이다. SUM FIELDS=(10,10,ZD) FORMAT=f 합산필드들의형식이모두같은경우필드내에서일일이형식을지정하지않고 COND 문뒤에서 FORMAT=f 를사용해한꺼번에지정해줄수있다. 다음은 20 에서 5Byte, 30 에서 10Byte 의 FI 형식의레코드들을합산하는예제이다. SUM FIELDS=(20,5,30,10),FORMAT=FI 참고 OpenFrame 에서는제어필드의형식이모두일치하는경우에만 FORMAT 옵션을지정할수있다. NONE 레코드를합산하지않고다만동일한키값을가진레코드들을하나만남기고모두삭제할때사용한다. 다음은동일한키값을가진레코드들을하나만남기고모두삭제하는예제이다. SUM FIELDS=NONE 주의사항 다음은 SUM 문을작성할때주의사항이다. SORT/MERGE에서 NOEQUALS가지정되어있을때는어떤레코드에합산되고어떤레코드가삭제되는지는무작위에따른다. SORT의경우 EQUALS가지정되어있을때먼저입력된레코드에나머지레코드들을합산한다. MERGE 의경우 제 2 장 SORT 유틸리티 31

EQUALS 가지정되면 SORTINnn 에서번호가가장작은레코드에합산되며 SORTINnn 이같은경우 에는먼저입력된레코드에합산된다. SUM 을수행할때지정된레코드필드의내용만합산되고다른필드의내용은합산되지않는다. SUM 을수행할때오버플로우가발생하면합산이되지않는다. 합산되지않은레코드들은삭제또한되 지않는다. 32 OpenFrame SORT 유틸리티참조안내서