2013-05-13 4 views
6

Folgende ist meine Oracle Version Oracle Database 11g Enterprise Edition Veröffentlichung 11.2.0.2.0 - 64-Bit-ProduktionPLS-907 können Bibliothekseinheit nicht geladen

Ich habe versucht, eine Tabelle zu ändern, um eine Spalte hinzuzufügen, aber da es lange gedauert hat, Zeit, ich habe es abgebrochen.

Nach einiger Zeit sah ich Fehler in allen Paketen und Ansichten, die auf die Einheit verwiesen. Fehlermeldung ist

PLS-907: nicht Bibliothekseinheit geladen werden kann (Tabellenname)

zu diesem Fehler googeln nicht viele Informationen nicht geben. An einer Stelle, sah ich, dass unter Befehl helfen, aber es scheint mir, als sehr riskant Befehl

alter Spülsystem shared_pool

mir jemand mit dem Grund und Lösung dieses Problems helfen?

Danke, Jeevan

+0

Klingt wie Ihre Tabelle möglicherweise in einem seltsamen Zustand ist und die Pakete, die sich darauf beziehen, können nicht neu kompilieren. Ich bin mir nicht sicher, ob Spülen etwas bewirken würde, aber ich bin mir nicht sicher, ob ich sagen würde, dass es gefährlich ist. Beschreibt die Beschreibung Ihrer Tabelle die neue Spalte und sieht irgendetwas in 'user_tables' aus? –

+0

Neue Spalte wird nicht hinzugefügt und in user_tables wird der Status als VALID – Jeevan

+0

@Alex angegeben - es kann auch ein merkwürdiger Fall sein, wenn das Wörterbuch nicht mit der tatsächlichen Tabelle übereinstimmt, daher kann das Löschen des Wörterbuch-Pools helfen. Da dieses Problem in einer Testumgebung nicht reproduzierbar ist, sollten Sie versuchen, die Tabelle herunterzufahren und neu zu erstellen und Ihren Pool nicht zu leeren. – haki

Antwort

4

es wegen der DB Links geschieht für Verbindungen gelöscht und neu erstellt, um das Paket nur neu kompiliert dieses Problem zu beheben wird und einige Male es automatisch neu kompilieren.