Zoeken…


Invoering

Een van de uitdagingen die ik tegenkwam toen ik SAS voor het eerst begon te gebruiken, was niet alleen Macro Variable-gegevens doorgeven aan een PROC SQL-doorvoer, maar het ook goed laten oplossen als er quotes omheen nodig waren. Wanneer een string zoals waarde of datum / datetime wordt doorgegeven aan een PROC SQL-doorvoer, moet deze waarschijnlijk enkele aanhalingstekens eromheen hebben wanneer deze wordt opgelost.

Ik heb de beste resultaten gevonden bij het gebruik van de functie% BQUOTE om dit te bereiken.

Opmerkingen

Meer informatie over de functie% BQUOTE is hier te vinden: https://v8doc.sas.com/sashtml/macro/z4bquote.htm

Doorvoer met macrovariabele die een datum is

Eerst plaats ik mijn datum in een macrovariabele.

OPMERKING: ik vind die datum9. werkt uitstekend met IBM® Netezza® SQL en Transact-SQL. Gebruik de indeling die werkt voor het type SQL dat u uitvoert.

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

Mijn% PUT-instructie is opgelost in: 10MAR2017

Vervolgens wil ik een PROC SQL-doorvoer uitvoeren en die macrovariabele binnen oplossen om een datum op te geven.

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') wordt omgezet in '10MAR2017' wanneer de code wordt uitgevoerd.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow