BookmarkSubscribeRSS Feed

[SAS 프로그래밍 고수 백승민] [변수명] SAS변수명을 DB메타데이터의 한글 COMMENT로 교체하기

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 859

 

* 출처 : http://cafe.daum.net/statsas/3F8j/245

 

오라클의 메타 데이터를 사용하여서 SAS에서 변수명을 변경하는 방법입니다.

 


* DBA_COL_COMMENTS : 오라클에서 열에 지정되어 있는 COMMENT 관리 테이블;
* 해당 사용자 계정에 조회 권한 확인 필요;
* 해당열의 이름과 COMMENT가 동일한 경우에는 RENAME 로직에서 제거 필요;

 


PROC SQL;
CONNECT TO ORACLE(USER=사용자ID PASSWORD=PASSWORD PATH='TNSNAME' PRESERVE_COMMENTS ADJUST_BYTE_SEMANTIC_COLUMN_LENGTHS=NO);
%PUT &SQLXMSG;
CREATE TABLE BACK AS SELECT * FROM CONNECTION TO ORACLE
( SELECT *
FROM BACK
WHERE ROWNUM<100
);

 

 

 

CREATE TABLE DBA_COL_COMMENTS AS SELECT * FROM CONNECTION TO ORACLE
( SELECT *
FROM DBA_COL_COMMENTS
WHERE OWNER = 'APCOM'
AND TABLE_NAME = 'BACK'
);
%PUT &SQLXMSG;
DISCONNECT FROM ORACLE;
QUIT;

 

 

* SAS 에서 할글 변수명 사용을 위한 옵션;
OPTIONS VALIDVARNAME = ANY;

 

 

* 변수 RENAME을 위하여 "변경 전 변수명 = 변경 후 변수명"을 하나의 MACRO 변수로 할당;
PROC SQL NOPRINT;
SELECT COMPRESS(COLUMN_NAME)||' = "'||COMPRESS(COMMENTS)||'"n' INTO: VARNAME SEPARATED BY ' '
FROM DBA_COL_COMMENTS A;
QUIT;

%PUT &VARNAME;

 

 

* 다음 방식은 메타데이터의 변수명 정보를 교체;

PROC DATASETS LIBRARY=WORK MEMTYPE=DATA;
CONTENTS DATA=CTCS0000TB; * 변수명 교체 작업 전 테이블 확인;
MODIFY BACK; * 수정 대상 테이블명 지정;
RENAME &VARNAME; * 한글명으로 교체;
ATTRIB _ALL_ LABEL=' '; * 할당되어있는 영문 레이블 제거;
CONTENTS DATA=CTCS0000TB; * 변수명 교체 작업 결과 확인;
RUN;
QUIT;

Version history
Last update:
‎06-11-2020 10:18 PM
Updated by:
Contributors

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Labels
Article Tags