एक बुनियादी रूपरेखा के रूप में आप क्वेरी करने के लिए एक हेरेडोक के साथ SQL*Plus चला सकते हैं, और एक चर के लिए आउटपुट असाइन कर सकते हैं:
P_NUMBER=`sqlplus -s /nolog <<!EOF
connect username/password
whenever sqlerror exit failure
set pagesize 0
set feedback off
select your_value from your_table where your_key = 'something';
exit 0
!EOF`
बैकटिक्स में संलग्न करने से वेरिएबल को परिणाम मिलता है। $P_NUMBER तब आपकी क्वेरी को जो भी मूल्य मिलेगा (या एक त्रुटि संदेश यदि क्रेडेंशियल गलत थे, तो कहें)। यह मदद करता है यदि आप सुनिश्चित हैं कि क्वेरी बिल्कुल एक परिणाम लौटाएगी। आप $?
. के साथ रिटर्न कोड का परीक्षण भी कर सकते हैं त्रुटियों को देखने के लिए, इससे पहले कि आप अपने चर का उपयोग करने का प्रयास करें।
-s
. सहित फ़्लैग करना, फ़ीडबैक को बंद करना और पेजसाइज़ को शून्य पर सेट करना सामूहिक रूप से सभी शोर को दबा देता है ताकि आपको केवल परिणाम मिले और आपको बैनर, हेडिंग आदि को अलग न करना पड़े।
और अंत में मैंने /nolog
. का उपयोग किया है और connect
हेरेडोक के अंदर बयान ताकि क्रेडेंशियल प्रक्रिया सूची में प्रकट न हों, जो अक्सर अनदेखी की जाने वाली सुरक्षा समस्या है। यदि आप ऐसा नहीं करना चाहते हैं और क्रेडेंशियल्स को sqlplus username/passwd
के रूप में रखें , आप -l
जोड़ सकते हैं ध्वज ताकि यह केवल एक बार लॉग इन करने का प्रयास करे; अन्यथा अगर किसी कारण से लॉगिन विफल हो जाता है तो यह शेष हेरेडोक को आगे के प्रमाण-पत्रों के रूप में उपयोग करने का प्रयास करेगा, और लघु स्क्रिप्ट के साथ लटका हुआ प्रतीत हो सकता है।