एक दिया गया एसक्लप्लस सत्र एक समय में केवल एक डीबी से कनेक्ट हो सकता है, इसलिए आपकी आवश्यकता 'उसी समय' अनिवार्य रूप से एक गैर-स्टार्टर है। यदि 'एक ही समय' का वास्तव में अर्थ है 'क्रमिक रूप से, उसी स्क्रिप्ट में, तो आप अपनी कनेक्ट स्ट्रिंग को ठीक करने के लिए वापस आ गए हैं। और उस पर आपके पास 'शुरुआती मेट्स गेम की तुलना में अधिक त्रुटियां हैं' (किसी भी NY मेट्स प्रशंसकों के लिए माफी के साथ)।
सबसे पहले, आपकी स्क्रिप्ट इंगित करती है कि आपका sqlplus कमांड आपके शेल प्रोसेसर और 'सेट -x' के विनिर्देशन के बाद पहला वास्तविक कमांड है। फिर भी आप उपयोगकर्ता नाम, पासवर्ड और कनेक्शन नाम के प्रतिस्थापन के रूप में पर्यावरण चर का भारी उपयोग करते हैं - उन चरों को कभी भी सेट किए बिना।
दूसरा, कमांड लाइन में '&' का आपका उपयोग मेरे और पार्सर दोनों के लिए पूरी तरह से भ्रमित करने वाला है।
तीसरा, आपको एसक्यूएल स्क्रिप्ट के संदर्भ में '@' के साथ अपना संदर्भ देना होगा।
चौथा, कमांड लाइन में तत्वों का आपका क्रम गलत है।
इसे आजमाएं
#!/bin/bash
orauser1=<supply user name here>
orapw2=<supply password here>
oradb_1=<supply connection name of first database>
#
orauser1=<supply user name here>
orapw2=<supply password here>
oradb_1=<supply connection name of first database>
#
Targetdirectory=<supply value here>
#
sqlplus -S ${orauser1}/${orapw1}@${oradb_1} @Datesquery.sql >> ${Targetdirectory}/csvfile1.csv
sqlplus -S ${orauser2}/${orapw2}@${oradb_1} @Datesquery.sql >> ${Targetdirectory}/csvfile2.csv