Es gibt eine Oracle-Datenbank (Version 8), die als PL/SQL-API fungiert und Zugriff auf verschiedene Prozeduren und Tabellen in dieser Datenbank bietet.
Ich habe eine andere Oracle-Datenbank (Version 10g), die diese Prozeduren und Tabellen über Datenbankverbindung verwendet.
Ich habe meine Datenbank auf Version 12g aktualisiert, aber anscheinend gibt es Kompatibilitätsprobleme mit der Datenbankverbindung zwischen den Versionen 8 und 12g. Also kam ein Plan auf, eine dritte Datenbank mit Oracle Version 10g zu erstellen und zwischen 8 und 12g als "Proxy" zu setzen.
Datenbankverbindungen von v12g zu v10g und von v10g zu v8 erstellt. Erstellt Synonyme in der "Proxy" (v10g) -Datenbank für Tabellen und Prozeduren in der v8-Datenbank. Ich kann eine Standard-SELECT-Klausel von v12g machen:PL/SQL-API über zwei Datenbankverknüpfungen verwenden
select column from [email protected];
Aber es in anonymen Block setzen:
declare
sVar varchar2(200);
begin
select column into sVar from [email protected];
dbms_output.put_line(sVar);
end;
gibt einen Fehler: „PL/SQL: ORA-00980: Synonym Übersetzung ist nicht mehr gültig". Gibt es eine Möglichkeit, auf v8-Prozeduren und -Tabellen von v12g über v10g zuzugreifen - also über 2 Datenbanklinks?
Und der Grund, warum Sie die v8-Datenbank auf eine Version aus diesem Jahrtausend nicht aktualisieren können, ist ....? – APC
Es gehört zu einer anderen Firma :) – Tanel
Eine andere Lösung, abhängig davon, wie aktuell die Daten sein müssen, besteht darin, materialisierte Ansichten auf der 10g-Datenbank zu erstellen, die regelmäßig die Daten aus den 8 über ihre DB-Verknüpfung abrufen und dann diese MVs von 12g abfragen . –