-- Session 1 -- Anlage eines DB-Links -- (in diesem Fall ein loopback Link auf die gleiche Instanz, -- was aber wohl keine Rolle spielt) create database link loopback using 'TestDB'; -- Session 2 select count(*) from t_remote@loopback; -- Session 1 drop database link loopback; -- Session 2 --> liefert das Ergebnis der Abfrage COUNT(*) ---------- 24800000 -- erneute Ausführung select count(*) from t_remote@loopback * FEHLER in Zeile 1: ORA-02019: Verbindungsbeschreibung für Fern-Datenbank nicht gefunden
Somit bleibt die Verbindung also für die Dauer der Query bestehen. Wenn ich darüber nachdenke, ist das Verhalten auch ganz plausibel: selbst die Löschung einer Tabelle führt ja nicht (notwendigerweise) zum Abbruch einer Query.
Nachtrag 30.04.2012: in manchen Fällen führt das Löschen eines verwendeten DB-Links aber offenbar auch zum Fehler "ORA-02018: Datenbank-Link desselben Namens hat eine offene Verbindung", aber die genauen Bedingungen für das Auftreten des Fehlers sind mir noch unklar. Grundsätzlich halte ich DB-Links aber für statische Objekte, die man nicht nach Lust und Laune löschen oder umdefinieren sollte.
Keine Kommentare:
Kommentar veröffentlichen