Dblink in PostgreSQL verwenden
Mit dem dblink-Modul können Sie eine Brücke zwischen PostgreSQL und anderen Datenbanken, einschließlich Oracle, erstellen. Um dblink zu verwenden, befolgen Sie diese Schritte:
1. Installation
Seit PostgreSQL 9.1 ist dblink eine integrierte Erweiterung. Installieren Sie es mit dem folgenden Befehl:
CREATE EXTENSION dblink;
Wenn Sie es in einem bestimmten Schema installieren möchten, verwenden Sie diese Syntax:
CREATE EXTENSION dblink SCHEMA my_schema;
2. Verbindungsparameter
Um eine Verbindung zu einer Remote-Datenbank herzustellen, müssen Sie die folgenden Verbindungsparameter angeben:
3. Herstellen einer Verbindung mit der Oracle-Syntax
Um mithilfe der Oracle-Syntax auf Tabellen in der Remote-Datenbank zuzugreifen, verwenden Sie das folgende Format:
SELECT * FROM table@remote_dblink;
Wobei remote_dblink der Name von ist die Dblink-Verbindung, die Sie mit den oben genannten Verbindungsparametern erstellt haben.
4. Fehlerbehandlung
Wenn der folgende Fehler auftritt:
HINT: No function matches the given name and argument types.
Möglicherweise müssen Sie die Datentypen explizit umwandeln. Zum Beispiel:
SELECT logindate::timestamp FROM dblink(...)
5. Konfiguration der Remote-Datenbank
Stellen Sie auf dem Remote-Datenbankserver sicher, dass er so konfiguriert ist, dass er eingehende Verbindungen von dem Host zulässt, von dem aus Sie eine Verbindung herstellen möchten. Möglicherweise müssen Sie dem Benutzer, als den Sie eine Verbindung herstellen, Berechtigungen erteilen.
6. Verbindung prüfen
Um zu überprüfen, ob die Verbindung ordnungsgemäß funktioniert, verwenden Sie den folgenden Befehl:
SELECT dblink_connect_u('connection_string');
Wenn die Verbindung erfolgreich ist, gibt die Funktion einen Wert ungleich Null zurück.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie kann ich den Dblink von PostgreSQL verwenden, um eine Verbindung zu Remote-Datenbanken herzustellen und diese abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!