2008-09-20 9 views
9

एक आधार एसएएस प्रोग्रामर के रूप में, आप ड्रिल पता है:बेस एसएएस में असंतुलित बोली स्थिति को तोड़ने के लिए आपकी सबसे अच्छी चाल क्या है?

आप तो अब आप न केवल और खुली हुई बोली, लेकिन यह भी खुली हुई टिप्पणी, मैक्रो समारोह परिभाषाएँ मिल गया है अपने एसएएस कोड है, जो एक असंतुलित उद्धरण शामिल भेजते हैं तो, और एक लापता रन; या छोड़ो; बयान।

उन असंतुलित उद्धरणों को परेशान न करने के लिए आपकी सबसे अच्छी चाल क्या है? खुद के लिए

+0

% str (% ") काम में आता है –

उत्तर

3

उद्यम गाइड 3 अपनी स्वचालित रूप से उत्पन्न कोड के शीर्ष पर निम्न पंक्ति डाल करने के लिए इस्तेमाल किया:

*';*";*/;run; 

हालांकि, एक ही रास्ता करने के लिए वास्तव में कुछ असंतुलित समस्याओं के सभी प्रकार से "रीसेट" छोड़ने की है एसएएस सत्र, और कोड को दोबारा जमा करने से पहले असंतुलित जो भी शेष है। इस तरह के त्वरित (सस्ते?) हैक्स का उपयोग मूल कारण को संबोधित नहीं करता है।

वैसे, ods _all_ close;सभी डिफ़ॉल्ट, परिणाम गंतव्य सहित ओडीएस गंतव्यों को बंद करता है। एक इंटरैक्टिव सत्र में, आपको कम से कम ods results; या ods results on; के साथ कम से कम दस्तावेज के अनुसार इसे खोलना चाहिए। लेकिन जब मैं अपने 9.2 पर यह परीक्षण किया है, यह काम नहीं किया, जैसा कि नीचे दिखाया:

%put sysvlong=&sysvlong sysscpl=&sysscpl; 
/* sysvlong=9.02.01M0P020508 sysscpl=X64_VSPRO */ 

ods _all_ close; 
proc print data=sashelp.class; 
run; 
/* on log 
WARNING: No output destinations active. 
*/ 

ods results on; 
proc print data=sashelp.class; 
run; 
/* on log 
WARNING: No output destinations active. 
*/ 
6

के रूप में, मैं आमतौर पर Google for "SAS unbalanced quote", और this की तरह कुछ प्रस्तुत करने के साथ खत्म:

*); */; /*’*/ /*”*/; %mend; 

... खुली हुई टिप्पणियों, उद्धरण और मैक्रो कार्यों से बाहर तोड़।

-1

हां, मुझे विश्वास है कि आधिकारिक एसएएस दस्तावेज आपके द्वारा प्रस्तावित समाधान की सिफारिश करता है।

+0

मुझे लगता है कि" रन; "और/या" छोड़ें "शामिल करने के लिए कुछ लाइन समाधान देखे गए हैं, इसलिए मैं सोच रहा था कि मेरा उदाहरण पूरा हो गया है। –

0

आप हमेशा एक समाप्ति सबमिट कथन आदेश जारी कर सकते हैं और जो भी आप चलाने की कोशिश कर रहे हैं उसे पुनः सबमिट कर सकते हैं।

+0

कैसे करें तुम्हारा मतलब है?क्या यह कमांड लाइन कोड है? –

5

यहां मैं उपयोग करता हूं।

;*';*";*/;quit;run; 
ODS _ALL_ CLOSE; 
QUIT; RUN; 
+0

मैं इसे एसएएस में एनोटेशन के रूप में उपयोग करता हूं - अगर मुझे असंतुलित कोट समस्याएं मिलती हैं तो 'फिक्स' टाइप करने से समस्या ठीक हो जाती है – Bendy

0

सिर्फ ODS _ALL_ CLOSE; बयान का उपयोग करने के AFHood के सुझाव दोहराना चाहते थे। यह शामिल करने के लिए एक महत्वपूर्ण है। और सुनिश्चित करें कि आप हर बार ओडीएस के साथ समाप्त होने पर इसका इस्तेमाल करते हैं।

1

मैं एक मैक्रो में असंतुलित उद्धरण के साथ एक स्थिति थी और एकमात्र समाधान एसएएस के उदाहरण को बंद करने और से शुरू करना था।

मुझे लगता है कि यह एसएएस में एक अस्वीकार्य दोष है।

हालांकि, मैंने दोनों # 2 और # 5 के तरीकों का उपयोग किया और यह काम किया। # 2 पहले और फिर # 1। मैंने उन्हें अपने कोड हेडर समेत सभी कोड से ऊपर रखा, यह समझाया कि यह प्रोग्राम क्या कर रहा था।

एक आकर्षण की तरह काम किया।

0

एसएएस सत्र बंद करने से मेरे मामले में काम किया। मुझे लगता है कि आप यहां उल्लिखित अन्य तरीकों का प्रयास करने से पहले एक बार कोशिश कर सकते हैं।

संबंधित मुद्दे