포스팅 목차
o CATNAME 구문
1. 목 적
CATNAME 구문은 다수의 카탈로그에 대하여 단일 카탈로그 참조자(catref)를 지정하여 논리적으로 하나의 카탈로그로 결합하는 작업을 수행한다. 또한 하나의 카탈로그 참조자(catref) 또는 지정된 모든 카탈로그 참조자를 해제하거나 하나의 카탈로그 결합 또는 지정된 모든 카탈로그 결합에 결합된 카탈로그의 리스트를 출력하는 작업도 가능하다.
2. 문 법
CATNAME <libref.> catref < (libref-1.catalog-1 <(ACCESS=READONLY)> <...libref-n.catalog-n <(ACCESS=READONLY)>)> ; CATNAME catref CLEAR | _ALL_ CLEAR; CATNAME catref LIST | _ALL_ LIST; |
Libref
프로그램에서 이전에 지정한 SAS 라이브러리 참조자(libref) 이름을 지정한다. 라이브러리 참조자(libref)를 지정하지 않으면, 기본적으로 결합된 카탈로그를 WORK 라이브러리에 생성한다.
제한사항 : | 라이브러리 참조자는 프로그램의 앞부분에서 지정되어 있어야 한다. |
Catref
SAS 구문에서 사용하기 위한 카탈로그 또는 카탈로그 결합에 대한 카탈로그 참조자 이름(이전에 사용되지 않은 이름)을 지정한다. 프로그램에서 마침표를 사용하여서 라이브러리 참조자(libref)와 카탈로그 참조자(catref)를 구분한다. (libref.catref)
Catalog
카탈로그 결합에서 사용되는 카탈로그의 이름을 지정한다.
CLEAR
현재 할당된 카탈로그 참조자(catref 또는 libref.catref)를 해제(삭제)한다.
Tip : | 하나의 결합을 해제하기 위하여 단일 카탈로그 참조자(catref 또는 libref.catref) 이름을 지정한다. 현재 세션에 존재하는 모든 카탈로그 참조자의 결합을 해제하기 위하여 _ALL_ CLEAR을 지정한다. |
_ALL_ CLEAR
현재 지정된 모든 카탈로그 참조자의 결합을 해제(삭제)한다.
LIST
지정한 카탈로그 결합에 포함된 개별 카탈로그 이름을 SAS 로그에 출력한다.
Tip : | 하나의 결합에 대한 속성을 출력하기 위하여 단일 카탈로그 참조자(catref 또는 libref.catref)를 지정하라. 현재 세션에 존재하는 모든 카탈로그 결합에 대한 속성을 출력하기 위하여 _ALL_을 지정하라. |
_ALL_ LIST
현재 카탈로그 참조자 결합에 포함된 모든 카탈로그 이름을 SAS 로그에 출력한다.
ACCESS=READONLY
카탈로그에 읽기 속성을 지정한다. 사용자는 카탈로그 엔트리를 읽을 수 있지만, 정보 업데이트와 새로운 정보를 추가하기 위한 작업은 허용하지 않는다.
3. 상세 설명
CATNAME를 사용하는 이유
CATNAME은 하나의 카탈로그 참조자 이름을 사용하여 다수의 카탈로그에 존재하는 엔트리에 대한 접근이 가능하기 때문에 유용하다.(libref.catref 또는 catref) 카탈로그 결합을 생성한 이후에, 단순한 카탈로그 참조자(결합되지 않은)를 사용 할 수 있는 위치에서 결합된 카탈로그 참조자를 사용 할 수 있다.
카탈로그 결합 규칙
카탈로그 결합을 효율적으로 사용하기 위하여, 결합된 카탈로그에서 카탈로그 엔트리가 위치하는 방법을 이해해야 한다.
1. 입력 또는 업데이트 작업을 수행하기 위하여 카탈로그 엔트리를 열 때에, 결합된 카탈로그를 검색하여서 지정된 엔트리 중에서 가장 먼저 검색된 엔트리를 사용한다.
2. 출력 작업을 위하여 카탈로그 엔트리를 열 때에, 결합된 카탈로그 내부에 나열된 카탈로그 중에서 첫 번째 카탈로그에 생성 될 것이다.
참고 : | 비록 결합된 카탈로그 내부의 다른 곳에 동일한 이름의 엔트리가 존재하더라도, 처음에 나열된 카탈로그에 신규 카탈로그 엔트리를 생성 할 것이다. |
참고 | 카탈로그 엔트리에 대하여 업데이트 작업을 수행하기 위하여 열리는 카탈로그 결합 내부의 첫 번째 카탈로그에 해당 엔트리가 존재하지 않는다면, 항목은 결합 내에서 엔트리가 존재하는 다음 카탈로그에 작성 될 것이다. |
3. 카탈로그 엔트리를 삭제 또는 이름을 변경하는 경우에, 단지 처음으로 존재하는 엔트리에 적용된다.
4. 카탈로그 엔트리의 목록이 출력 될 때에, 카탈로그 엔트리 이름 중에서 하나의 엔트리만 표시된다.
참고 | 비록 결합 내부에 다수의 이름이 존재하여도, 처음 발견되는 엔트리 이름이 출력된다. |
4. 비교 사항
- CATNAME 구문은 카탈로그에 대한 LIBNAME 구문과 유사하다. LIBNAME 구문은 SAS 라이브러리에 단축 이름을 지정하여서, 파일 검색 및 라이브러리에 포함된 데이터를 사용하도록 하기 위하여 단축 이름을 사용 할 수 있다. CATNAME 구문은 하나 이상의 카탈로그에 단축 이름 <libref.>catref(libref는 옵션사항)을 지정하(할당)여서, SAS가 카탈로그 검색 및 개별 카탈로그의 모든 항목(entry) 또는 일부 항목을 사용 할 수 있도록 한다.
- CATNAME 구문은 명시적으로 SAS 카탈로그를 결합한다. SAS 카탈로그를 암묵적으로 결합하기 위하여 LIBNAME 구문을 사용 할 수 있다.
5. 범 주
SAS 기본 구문
6. 관련 구문
구문명 | 구문 내용 |
FILENAME 구문 | SAS 파일 참조자(fileref)를 외부 파일 또는 출력 장치와 연결한다. 이와 반대로 파일 참조자(Fileref)와 외부 파일의 관계를 해제할 수 있으며, 외부 파일 속성을 출력할 수 있다. |
FILENAME 구문, CATALOG 접근 방법 | SAS 파일참조자(fileref)가 SAS 카탈로그를 참조하도록 지정한다. 외부 파일에 접근하는 방식과 유사하게 SAS 명령어, SAS 문장, 프로시져를 사용하여 SAS 카탈로그에 접근할 수 있다. 이 접근 방법은 SAS 카탈로그에 존재하는 자동 호출 매크로를 직접 호출할 수 있다. |
LIBNAME 구문 | SAS 라이브러리에 라이브러리 참조자(libref-단축이름)를 할당하거나 해제한다. |
7. 예 제
예제1 : 카탈로그 결합 지정과 사용하기
여러 SAS 카탈로그의 엔트리에 접근해야 할 경우가 있다. 정보를 접근하기 위한 가장 효율적인 방법은 카탈로그를 논리적으로 결합하는 것이다. 카탈로그 결합으로 별도의 새로운 카탈로그 생성 없이 정보에 접근을 할 수 있다.
결합하기 위한 카탈로그가 위치하는 SAS 라이브러리에 대한 라이브러리 참조자(librefs)를 지정한다.
SAS Statements |
libname mylib1 'data-library-1';
libname mylib2 'data-library-2';
논리적으로 결합하기 원하는 다수의 카탈로그에 대하여, 유효한 SAS 이름 규칙을 따르는 카탈로그 참조자(catref)를 지정한다.
SAS Statements |
catname allcats (mylib1.catalog1 mylib2.catalog2);
SAS로그에 다음 메시지가 표시된다.
Results - Log 출력물 |
NOTE: Catalog concatenation WORK.ALLCATS has been created.
라이브러리 참조자를 지정하지 않았기 때문에, 기본적으로 WORK를 라이브러리 참조자로 사용한다. 카탈로그 결합 내에서 카탈로그 엔트리에 접근하기 원하는 경우에, 본래의 라이브러리 참조자와 카탈로그 이름을 대신하여 WORK 라이브러리 참조명과 카탈로그 참조자 이름 ALLCATS를 사용하라. 예를 들면, 카탈로그 MYLIB1.CATALOG1 내부에 있는 카탈로그 엔트리 APPKEYS.KEYS를 접근하기 위하여 다음과 같이 지정한다.
SAS Statements |
Work.allcats.appkeys.keys
예제2 : 중첩된 카탈로그 결합 생성
1차로 카탈로그를 결합 한 후에, CATNAME 구문을 사용하여 상이한 단일 카탈로그 또는 사전에 결합되어 있는 카탈로그와 1차로 결합한 카탈로그 결합에 대하여 2차 결합을 할 수 있다. 하나의 카탈로그 참조자(catref)를 사용하여 다수의 상이한 카탈로그 결합을 접근 할 수 있기 때문에, 중첩된 카탈로그 결합은 유용하다.
SAS Statements |
libname local 'my_dir';
libname main 'public_dir';
catname private_catalog (local.my_application_code
local.my_frames
local.my_formats);
catname combined_catalogs (private_catalog
main.public_catalog);
위 예제에서 카탈로그 결합 PRIVATE_CATLOG 사용하여 어플리케이션 엔트리의 개인 복사본을 사용하여 작업 할 수 있다. 어플리케이션 공용 버전과 결합하여 사용 할 때, 엔트리의 작동 방식을 확인하기 원한다면, COMBINED_CATALOGS 카탈로그를 사용 할 수 있다.
[SAS Statement] SAS 데이터 스텝 구문 사전 목록] |
SAS 함수(SAS Function) 리스트 링크 |
'SAS > SAS 구문사전' 카테고리의 다른 글
[SAS Statement] Comment(주석) 구문 (0) | 2022.01.25 |
---|---|
【SAS Statement】 CHECKPOINT EXECUTE_ALWAYS 구문 (0) | 2022.01.25 |
[SAS Statement] CARDS4 구문 (0) | 2022.01.25 |
[SAS Statement] CARDS 구문 (0) | 2022.01.25 |
[SAS Statement] CALL 구문 (0) | 2022.01.25 |
댓글