sas
PROC SQL पास-थ्रू के भीतर उद्धरण चिह्नों में मैक्रो चर को हल करना
खोज…
परिचय
जब मैंने पहली बार एसएएस का उपयोग करना शुरू किया था, तो चुनौतियों में से एक न केवल मैक्रो वेरिएबल डेटा को 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' का समाधान करेगा।