sas
Resolución de variables de macro entre comillas dentro de los pasos de PROC SQL
Buscar..
Introducción
Uno de los desafíos que enfrenté cuando comencé a usar SAS no era solo pasar los datos de Variables de Macro a un paso de PROC SQL, sino también resolverlos correctamente si era necesario hacer citas. Cuando se pasa una cadena como valor o fecha / fecha y hora a un paso de PROC SQL, lo más probable es que tenga comillas simples a su alrededor cuando se resuelva.
He encontrado los mejores resultados al usar la función% BQUOTE para lograr esto.
Observaciones
Puede encontrar más información sobre la función% BQUOTE aquí: https://v8doc.sas.com/sashtml/macro/z4bquote.htm
Paso a través con macro variable que es una fecha
Primero, colocaré mi fecha en una Variable Macro.
NOTA: Encuentro esa fecha9. funciona muy bien con IBM® Netezza® SQL y Transact-SQL. Utilice el formato que funcione para el tipo de SQL que está ejecutando.
data _null_;
call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;
Mi declaración% PUT se resuelve en: 10MAR2017
A continuación, deseo ejecutar un paso de PROC SQL y resolver esa Variable de macro en el interior para especificar una fecha.
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') se resolverá a '10MAR2017' cuando se ejecute el código.