Sesi sqlplus yang diberikan hanya dapat terhubung ke satu db pada satu waktu, jadi kebutuhan Anda 'pada saat yang sama' pada dasarnya adalah non-starter. Jika 'pada saat yang sama' benar-benar berarti 'secara berurutan, dalam skrip yang sama, maka Anda kembali untuk memperbaiki string koneksi Anda. Dan saat itu Anda 'memiliki lebih banyak kesalahan daripada game Mets awal' (dengan permintaan maaf kepada semua penggemar NY Mets).
Pertama, skrip Anda menunjukkan bahwa perintah sqlplus Anda adalah perintah aktual pertama yang mengikuti spesifikasi prosesor shell Anda dan 'set -x'. Namun Anda sering menggunakan variabel lingkungan sebagai pengganti nama pengguna, sandi, dan nama koneksi - tanpa pernah menyetel variabel tersebut.
Kedua, penggunaan '&' Anda di baris perintah benar-benar membingungkan saya dan pengurai.
Ketiga, Anda harus mendahului referensi Anda ke skrip sql dengan '@'.
Keempat, urutan elemen Anda di baris perintah semuanya salah.
Coba ini
#!/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