खोज…


परिचय

जब मैंने पहली बार एसएएस का उपयोग करना शुरू किया था, तो चुनौतियों में से एक न केवल मैक्रो वेरिएबल डेटा को PROC SQL पास-थ्रू में पारित कर रहा था, बल्कि इसे ठीक से हल करने की आवश्यकता होने पर। PROC SQL पास-थ्रू में मान या दिनांक / डेटाइम जैसे स्ट्रिंग को पास करते समय, जब यह हल हो जाता है, तो सबसे अधिक संभावना है कि इसके आसपास एकल उद्धरण हों।

इसे पूरा करने के लिए% BQUOTE फ़ंक्शन का उपयोग करते समय मुझे सबसे अच्छे परिणाम मिले हैं।

टिप्पणियों

% BQUOTE फ़ंक्शन की अधिक जानकारी यहां पाई जा सकती है: https://v8doc.sas.com/sashtml/macro/z4bquote.htm

मैक्रो चर के साथ पास-थ्रू जो एक तारीख है

सबसे पहले, मैं अपनी तिथि को मैक्रो वैरिएबल में रखूंगा।

नोट: मुझे वह तारीख 9 लगती है। IBM® Netezza® SQL और Transact-SQL के साथ बढ़िया काम करता है। जो भी SQL आप निष्पादित कर रहे हैं के प्रकार के लिए जो भी प्रारूप का उपयोग करें।

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

मेरा% PUT स्टेटमेंट: 10MAR2017 तक रहता है

इसके बाद, मैं एक PROC SQL पास-थ्रू चलाना चाहता हूँ और उस मैक्रो चर को अंदर दिनांकित करने के लिए निर्दिष्ट करना चाहता हूँ।

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') '10MAR2017' का समाधान करेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow