본문 바로가기

전산Tip/SAS

[SAS] 오라클vs SAS 테이블 건수 비교

반응형


PROC SQL;
        CREATE TABLE TBL AS
        SELECT  A.*
        FROM    (
                SELECT  MEMNAME
                FROM    DICTIONARY.TABLES
                WHERE   LIBNAME = UPCASE("IR_ETL")
                ) AS A
                , ORA.TAB AS B
        WHERE   A.MEMNAME = B.TNAME
        ;
QUIT;

 

DATA    _NULL_;
SET     TBL END=EOF NOBS=CNT;
        CALL SYMPUT('MEMNAME'||LEFT(_N_), COMPRESS(MEMNAME));
        IF EOF THEN CALL SYMPUT('CNT', COMPRESS(CNT));
RUN;

 

OPTION MPRINT;
%MACRO M1;
        PROC SQL;
        CREATE TABLE TBL_CHK AS
        SELECT  A.*
                , CASE WHEN A.CNT_SAS ^= A.CNT_ORA THEN 'X' END AS CHK
        FROM    (
                %DO I = 1 %TO &CNT;
                %IF &I ^= 1 %THEN %DO;
                UNION ALL
                %END;
                SELECT  MEMNAME
                        , (SELECT COUNT(*) FROM IR_ETL.&&MEMNAME&I ) AS CNT_SAS
                        , (SELECT COUNT(*) FROM ORA_SVOC.&&MEMNAME&I ) AS CNT_ORA
                FROM    TBL
                WHERE   MEMNAME = "&&MEMNAME&I"
                %END;
                ) AS A
        ;
        QUIT;
%MEND;
%M1;

'전산Tip > SAS' 카테고리의 다른 글

[SAS] hash를 이용한 row 병합  (0) 2011.02.21
[SAS] SAS options mprint  (0) 2011.01.11
[SAS] proc sql create table에 label 넣기  (0) 2010.09.14