Ein kleines Syntaxbeispiel zur Definition eines Foreign Data Wrappers (FDW) in postgres. Ein paar grundsätzlichere Erläuterungen zum Thema hatte ich hier vor längerer Zeit notiert, dabei aber nur FDW-Definitionen mit Zugriff von einer postgres-Datenbank auf eine andere postgres-Datenbank untergebracht. Hier folgt eine kurze Zusammenfassung der Schritte, die nötig waren, um einen postgres-FDW-Zugriff auf eine Oracle-Datenbank einzurichten:
1. Download der zugehörigen Komponenten, die hier zu finden sind. Der Download enthält die Kontrolldatei (oracle_fdw.control) und zwei SQL-Dateien für den Ordner share\extension, sowie die erforderliche dll (oracle_fdw.dll) für den lib-Ordner.
2. Anlage der Extension in der vorgesehenen postgres-Datenbank
create extension oracle_fdw;
3. Anlage der FDW-Definitionen
drop server if exists test_oracle cascade;
create server test_oracle
foreign data wrapper oracle_fdw
options (
dbserver '//xxx.xxx.xxx.xxx:1521/yyy.yyy.yyy' (also eine Host-Naming-Verbindung mit ip und DB-Namen)
);
create user mapping for postgres
server test_oracle
options (
user 'test'
, password 'test'
);
create foreign table t_oracle (
id integer
, col1 text
)
server test_oracle options (schema 'TEST', table 'T');
select * from t_oracle limit 10;
+----+----------------------------------------------------+
| id | col1 |
+----+----------------------------------------------------+
| 1 | ************************************************** |
| 2 | ************************************************** |
| 3 | ************************************************** |
| 4 | ************************************************** |
| 5 | ************************************************** |
| 6 | ************************************************** |
| 7 | ************************************************** |
| 8 | ************************************************** |
| 9 | ************************************************** |
| 10 | ************************************************** |
+----+----------------------------------------------------+
(10 Zeilen)
Ein vollständigeres Beispiel hätte wohl auch noch die Tabellenanlage auf Oracle-Seite enthalten, aber ich verbürge mich dafür, dass das Query-Resultat der Tabellendefinition im Quellsystem ähnelt. Im Prinzip ist eine solche Einbindung von Oracle-Daten ist postgres also sehr einfach.
Keine Kommentare:
Kommentar veröffentlichen