sql >> Databasteknik >  >> RDS >> Oracle

Behöver köra en sql-fråga mot två Oracle DBs i skalskript åt gången och exportera data till separata csv-filer

En given sqlplus-session kan bara ansluta till en db åt gången, så ditt krav "på samma gång" är i huvudsak en icke-startare. Om 'på samma gång' verkligen betyder 'sekventiellt, i samma skript, då är du tillbaka till att fixa din kopplingssträng. Och då "har du fler fel än ett tidigt Mets-spel" (med ursäkt till alla NY Mets-fans).

För det första indikerar ditt skript att ditt sqlplus-kommando är det allra första faktiska kommandot efter specifikation av din skalprocessor och 'set -x'. Ändå använder du mycket miljövariabler som ersättningar för användarnamn, lösenord och anslutningsnamn - utan att någonsin ställa in dessa variabler.

För det andra är din användning av en '&' på kommandoraden totalt förvirrande för både mig och tolken.

För det tredje måste du föregå din referens till sql-skriptet med '@'.

För det fjärde är din ordning av element på kommandoraden helt fel.

Prova detta

#!/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


  1. Hur man uppdaterar data i en anpassad dialogruta

  2. Crystal Report-fel. Det gick inte att öppna anslutningen

  3. PostgreSQL:visa resor inom en begränsningsram

  4. Låsa upp fördelarna med MariaDB:s Certified Associate Program