Suche…


Einführung

Eine der Herausforderungen, die ich zu Beginn meiner Arbeit mit SAS hatte, bestand nicht nur darin, Makrovariable-Daten an ein PROC-SQL-Passthrough zu übergeben, sondern auch ordnungsgemäß aufzulösen, wenn Anführungszeichen erforderlich waren. Wenn Sie einen String wie value oder date / datetime an ein PROC SQL-Passthrough übergeben, müssen beim Anschließen höchstwahrscheinlich einfache Anführungszeichen verwendet werden.

Ich habe die besten Ergebnisse gefunden, wenn ich die Funktion% BQUOTE verwende, um dies zu erreichen.

Bemerkungen

Weitere Informationen zur Funktion% BQUOTE finden Sie hier: https://v8doc.sas.com/sashtml/macro/z4bquote.htm

Pass-Through mit Makrovariable, die ein Datum ist

Zuerst werde ich mein Datum in eine Makrovariable setzen.

HINWEIS: Ich finde das Datum9. Funktioniert hervorragend mit IBM® Netezza® SQL und Transact-SQL. Verwenden Sie das Format, das für den von Ihnen ausgeführten SQL-Typ geeignet ist.

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

Meine% PUT-Anweisung wird in: 10MAR2017 aufgelöst

Als Nächstes möchte ich einen PROC SQL Pass-Through ausführen und die Makrovariable darin auflösen, um ein Datum anzugeben.

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') wird zu '10MAR2017' aufgelöst, wenn der Code ausgeführt wird.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow