수색…


소개

SAS를 처음 사용하기 시작할 때 직면 한 어려움 중 하나는 매크로 변수 데이터를 PROC SQL 패스 스루에 전달하는 것이 아니라 주위에 따옴표가 필요하면 제대로 처리하는 것이 었습니다. 값 또는 날짜 / datetime과 같은 문자열을 PROC SQL 통과로 전달할 때 해결할 때 주위에 작은 따옴표가 있어야 할 가능성이 큽니다.

이것을 달성하기 위해 % BQUOTE 함수를 사용할 때 가장 좋은 결과를 발견했습니다.

비고

% BQUOTE 함수에 대한 자세한 내용은 다음을 참조 하십시오. https://v8doc.sas.com/sashtml/macro/z4bquote.htm

날짜 인 매크로 변수의 패스 스루

먼저, 날짜를 매크로 변수에 넣을 것입니다.

참고 : 저는 date9를 찾습니다. IBM® Netezza® SQL 및 Transact-SQL에서 잘 작동합니다. 실행중인 SQL 유형에 적합한 형식을 사용하십시오.

data _null_;
            call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;

내 % PUT 문은 다음으로 해결됩니다. 10MAR2017

그런 다음 PROC SQL Pass-through를 실행하고 그 내부의 매크로 변수를 해결하여 날짜를 지정하려고합니다.

PROC SQL;
CONNECT TO odbc AS alias (dsn=myServer user=userName password= pass);
CREATE TABLE TableName AS 
SELECT * 
FROM connection to alias
    (
        SELECT *
        FROM
            Database.schema.MyTable
        WHERE
            DateColumn = %bquote('&testDate')
    );
QUIT;

% bquote ( '& testDate')는 코드가 실행될 때 '10MAR2017'로 해석됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow