sas
Lösa makrovariabler i citat inom PROC SQL-genomgångar
Sök…
Introduktion
En av de utmaningar jag mötte när jag först började använda SAS var inte bara att skicka Macro Variable-data till ett PROC SQL-genomgång, utan att få det att lösa ordentligt om det behövdes citat runt det. När du skickar en sträng som värde eller datum / datetime i ett PROC SQL-genomgång måste det troligtvis ha enstaka citat runt sig när det löses.
Jag har hittat de bästa resultaten när jag använder funktionen% BQUOTE för att uppnå detta.
Anmärkningar
Mer information om% BQUOTE-funktionen hittar du här: https://v8doc.sas.com/sashtml/macro/z4bquote.htm
Genomgå med makrovariabel som är ett datum
Först kommer jag att placera mitt datum i en makrovariabel.
OBS: Jag hittar det datum9. fungerar bra med IBM® Netezza® SQL och Transact-SQL. Använd vilket format som fungerar för den typ av SQL du kör.
data _null_;
call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;
Mitt% PUT-uttalande löser: 10MAR2017
Därefter vill jag köra en PROC SQL-genomgång och lösa den makrovariabeln inuti för att ange ett datum.
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') kommer att lösa till '10MAR2017' när koden körs.