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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow