2013-09-30 6 views

Antwort

3

Momentan gibt es keine MySQL equavilent Methode, siehe this Post. jedoch vier mögliche Abhilfen für Ihr Szenario:

  • Gebrauch vollständig qualifizierten Tabellennamen, wenn für die externe Tabelle abzufragen. MySQL unterstützt die dbname.tablename`-Syntax, um auf Tabellen außerhalb von des aktuellen Datenbankbereichs zuzugreifen. Dies setzt voraus, dass der aktuell verbundene Benutzer über die entsprechenden Rechte zum Lesen der angeforderten Tabelle in einer anderen physischen Datenbank verfügt.
  • Wenn Ihre externe Datenbank auf einem anderen MySQL-Server ausgeführt wird (entweder auf demselben Computer oder über eine Netzwerkverbindung), können Sie mithilfe der Replikation eine schreibgeschützte Kopie der Remote-Tabelle fortlaufend aktualisieren. Die Replikation ist nur möglich, wenn Sie zwei separate MySQL-Instanzen ausführen.
  • Verwenden Sie die FEDERATED MySQL storage engine, um virtuell die Tabelle in Ihre aktuelle Datenbank zu importieren. Dadurch entfällt die Anforderung, die aktuellen Benutzerzugriffsrechte in der zweiten Datenbank anzugeben, da die Anmeldeinformationen mit der CREATE TABLE-Anweisung angegeben werden, wenn die Speicher-Engine FEDERATED verwendet wird. Dies funktioniert auch mit den Datenbanken auf verschiedenen physischen Servern oder verschiedenen MySQL-Instanzen. Ich denke, , dass dies die am wenigsten performante Option sein wird und einige Einschränkungen hat - mehr oder weniger wichtig je nach Ihrem Nutzungsszenario und Ihre Anforderungen.
  • Dies ist eine Erweiterung zu Methode 1. Anstatt die vollqualifizierten Tabellennamen jedes Mal anzugeben, wenn Sie Informationen von Ihre externe Tabelle anfordern, können Sie einfach eine Ansicht innerhalb Ihrer aktuellen Datenbank basierend auf erstellen einfach SELECT <> VON <>. <>. Dies ähnelt der Funktionsweise der FEDERATED-Methode , ist aber auf Tabellen auf derselben MySQL-Instanz beschränkt.

wäre Dieses hilfreiche http://www.pythian.com/blog/how-to-access-mysql-from-oracle-with-odbc-and-sql/

+0

99% dieser Antwort wurde von https://stackoverflow.com/a/1566137 kopiert –

1

Die Oracle RDBMS und die MySQL RDBMS sind zwei völlig verschiedene Server. Obwohl beide Daten speichern und implementieren die SQL-Sprache zu verwalten, dass sie nichts gemeinsam haben. Das bedeutet auch, dass Sie keinen Oracle-Server von einem MySQL-Server referenzieren können und umgekehrt. Sie können einen anderen MySQL-Server nicht von einem anderen Server aus ansprechen. Alle Arbeiten werden immer gegen einen einzelnen Server ausgeführt, mit dem Sie eine Verbindung herstellen (entweder von einem visuellen Client wie MySQL Workbench oder dem Befehlszeilenclient).

2

Sie können direkt von MySQL aus auf die Oracle (oder andere DBMS) Informationen zugreifen, indem Sie die MySQL Federated-Tabellen über den Perl DBIx :: MyServer-Proxy verwenden.Diese Methode gibt es seit etwa 2007: Eine gute Schritt-für-Schritt-Beschreibung der Einrichtung und Verwendung ist hier verfügbar: http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/dbixmyserver.html Die Aufschreibung zeigt nicht nur die Verwendung von 'Select'-Anweisungen von direkt innerhalb MySQL zu postgres und sqlite nativen Tabellen, aber fügt auch wieder in diese Tabellen ein, indem Abfragen verwendet werden, die direkt aus der MySQL-Umgebung heraus ausgeführt werden. Das Perl-Modul finden Sie hier: http://search.cpan.org/~philips/DBIx-MyServer-0.42/lib/DBIx/MyServer.pm Viel Glück!

+0

Der erste Link ist gerade nicht verfügbar (verboten). Ich habe das aus dem Archiv: http://web.archive.org/web/20141113060908/http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/dbixmyserver.html – Memochipan

Verwandte Themen