Ich verwende oracle_fdw, um von einem postgres 9.5.3 zu einer Oracle-Datenbank zu verbinden.Referenz auf Foreign Table Postgres 9.5
CREATE FOREIGN SERVER foo FOREIGN DATA WRAPPER oracle_fdw OPTIONS (connection info..);
GRANT USAGE ON FOREIGN SERVER foo TO my_user;
CREATE USER MAPPING FOR my_user SERVER foo OPTIONS (user, password..);
Dann wird die Außen Tabelle erstellt wurde:
CREATE FOREIGN TABLE FT_ORACLE(
my_id integer,
description character varying(40)) SERVER foo OPTIONS (schema, table);
Die Tabelle den ich versuche zu verweisen aus:
die Server und Benutzerzuordnungen haben sich auf dem Postgres db erstellt
CREATE TABLE T_LOCALE(
id bigint NOT NULL,
oracle_id integer,
description character varying(40),
CONSTRAINT t_locale_pkey PRIMARY KEY(id));
Der Versuch, die Einschränkung hinzuzufügen:
ALTER TABLE T_LOCALE
ADD CONSTRAINT fk_t_locale_oracle_id FOREIGN KEY (oracle_id)
REFERENCES ft_oracle (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;
Ergebnisse in:
ERROR: referenced relation "ft_oracle" is not a table.
Frage: Sie befinden sich auf fremden Tabellen nicht verweisen können, richtig? Weil es Oracle egal wäre, wenn eine andere Datenbank auf ihre Tabelle verweist und nur ihre Einträge bearbeitet/löscht.
Danke für die Bestätigung, Laurenz! – Jakob