Een bepaalde sqlplus-sessie kan slechts verbinding maken met één db tegelijk, dus uw vereiste 'tegelijkertijd' is in wezen een niet-starter. Als 'tegelijkertijd' echt betekent 'opeenvolgend, in hetzelfde script, dan ben je weer bezig met het repareren van je connect string. En daarbij heb je 'meer fouten dan een vroege Mets-game' (met excuses aan eventuele NY Mets-fans).
Ten eerste geeft je script aan dat je sqlplus-opdracht de allereerste echte opdracht is die volgt op de specificatie van je shell-processor en 'set -x'. Toch maak je intensief gebruik van omgevingsvariabelen als vervanging voor gebruikersnaam, wachtwoord en verbindingsnaam - zonder ooit die variabelen in te stellen.
Ten tweede is het gebruik van een '&' in de opdrachtregel zowel voor mij als voor de parser totaal verwarrend.
Ten derde moet u uw verwijzing naar het sql-script vooraf laten gaan met '@'.
Ten vierde is je volgorde van elementen in de opdrachtregel helemaal verkeerd.
Probeer dit
#!/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