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