Abfrage über zwei Datenbanken

Status
Nicht offen für weitere Antworten.

netty

Mitglied
Halllo ,

ich möchte eine Abfrage überr zwei Datenbanken machen, nun weiß ich nicht wie ich die Datenbankverbindung aufbauen soll, denn normalerweise geht es ja so:
1. der Treiber wird angeben
Class.forName(driverClass);
2. die Paramenter für den Verbindungsaufbau werden angebenen
Connection con = DriverManager.getConnection(connection , userName ,userPassword);
3. die Abfrage wird aufgebaut
Statment stmt= con.createStatement();
ResultSet rset=stmt.executeQuery(queryString);
Nun hier liegt mein Problem, denn die Abfrage wird über die Connection Variable con auf eine bestimmte Datenbank bezogen, wie aber kann ich es machen das eine Abfrage über zwei Datenbanken möglich wird ???


Für jede Hilfe bin ich dankbar!!!
 
zwei connections verwenden und zwei Abfragen stelllen?

Was soll denn eine Abfrage "über zwei Datenbanken" machen, sowas gibts (fast) nicht!
 
Wer ne Anfrage über zwei Datenbanken braucht, muss wohl beim Datenbankdesign gepennt haben.. aber kräftig 😉
 
AlArenal hat gesagt.:
Wer ne Anfrage über zwei Datenbanken braucht, muss wohl beim Datenbankdesign gepennt haben.. aber kräftig 😉

Das würde ich nicht generell sagen, denn es könnte z.B. eine Abfrage für Migrationszwecke sein.
 
Ich kann mir aktuell kein Szenario denken, wo Zugriffe über mehrere Datenbanken zwingend notwendig wären.

Rein SQL-technisch sollte es mit den entsprechenden Privilegien möglich sein über DBNAME.TABELLENNAME auf die Daten zuzugreifen und so auch DB-übergreifend Abfragen zu machen. Ich bin mir aber nicht sicher ob das bei jeder DB funzt und ob dies auch über JDBC funzen würde.
 
Ich bin mir da auch nicht sicher, aber ich habe einen Fall bei einem Kunden, da könnte man das von mir genannte Szenario anwenden, weil dort regelmäßig Daten von einer DB in eine andere DB geschaufelt werden müssen. Das ist zwar anders gelöst worden, sollte prinzipiell aber auch mit dem genannten Szenario funktionieren.
 
Eine SQL Abfrage über zwei Datenbanken geht auf jedenfall, und zwar so : Select ID, Name , Type From datenbank.1. Adresse , datenbank2.Personen .......
Weiter kann es natürllich vorkommen das man zwei Datenbanken hat, und dies kann sehr wohl sinnvoll und notwednig sein, das sind meist komplexe und nicht "null 8 15"Datenbanksysteme - wenn man z.B. gewisse Daten zentral halten möchte, andere nicht usw.
Mein Problem besteht darin wie man rein vom Programm her zu zwei Datenbanken eine Verbindung aufbaut und dabei über beide eine Abfrage laufen läßt. Allerdings wird bei Connection nur eine Datenbank angeben?
 
zwei connections herstellen und zwei Abfragen stellen wäre eine Notlösung , aber nicht die schönste und viel aufwediger. Ich kann mir nicht vorstellen , wenn man über ein SQL-Abfrage dies machen kann, dann müsste dies programmtechnisch machbar sein. Oder ???
 
>>Eine SQL Abfrage über zwei Datenbanken geht auf jedenfall,

ja, sie funktioniert nur nicht!

mir fallen jetzt ad hoc nur zwei möglichkeiten ein:

A) MS-SQL-Server: verwende OPEN_ROWSET um eine andere Datenquelle transparent als View in deine DB einzuhängen, dann kannst du normales SQL dagegen laufen lassen

B) kauf dir einen ganz teueren applicationserver (z.B. Weblogic), dort kannst du eine Entitty EJB auf verschiedene Datasourcen verteilen und dann mit der EJBQL so abfragen, als ob das ganze ein "einziges" Gebilde wäre...
 
Hallo netty,

hast du inzwischen eine Lösung? Ich habe nämlich das selbe ungelöste Problem.

Gruß
xrax
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben