Una determinata sessione sqlplus può connettersi solo a un db alla volta, quindi il tuo requisito "allo stesso tempo" è essenzialmente un non-starter. Se 'allo stesso tempo' significa davvero 'in sequenza, nello stesso script, allora sei tornato a correggere la tua stringa di connessione. E poi "hai più errori di una prima partita dei Mets" (con scuse a tutti i fan dei NY Mets).
Innanzitutto, il tuo script indica che il tuo comando sqlplus è il primo vero comando dopo la specifica del tuo processore shell e 'set -x'. Eppure fai un uso massiccio delle variabili di ambiente come sostituzioni di nome utente, password e nome della connessione, senza mai impostare tali variabili.
In secondo luogo, l'uso di una "&" nella riga di comando è totalmente confuso sia per me che per il parser.
Terzo, devi far precedere il tuo riferimento allo script sql con '@'.
In quarto luogo, l'ordine degli elementi nella riga di comando è del tutto sbagliato.
Prova questo
#!/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