Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich die vollständige Definition (sql) von Systemansichten wie user_objects erhalten?

+1 für das Betrachten der Definitionen der Systemansichten!

Das erste Problem (DBMS_METADATA leer) ist ein Berechtigungsproblem. Gemäß der Dokumentation , sehen normale Benutzer nur ihre eigenen Objekte. Sie benötigen die Rolle SELECT_CATALOG_ROLE oder EXP_FULL_DATABASE um die Objekte anderer Benutzer zu sehen.

Das zweite Problem (SQL ist nicht vollständig) kommt vom Datentyp LANG , die laut Oracle nicht mehr verwendet werden sollte. Es wird jedoch immer noch von Oracle für View-Definitionen, Standardwerte, Constraint-Text usw. verwendet. Weil es so schwierig zu handhaben ist, wird das View ALL_VIEWS hat den Originaltext im LONG Spalte und einen abgeschnittenen Text, meist die ersten 4000 Zeichen, in der Spalte text_vc , vermutlich für "text in varchar".

BEARBEITEN:

Ich glaube, Sie verwenden Oracle 12, da Sie die Spalte text_vc erwähnen , die in Oracle 11 nicht verfügbar ist. Vermutlich verwenden Sie eine containerisierte Datenbank. Wenn ja, dann werfen Sie bitte einen Blick auf Datenwörterbucharchitektur in einer CDB . Anscheinend sind die von Oracle bereitgestellten Definitionen wie Ansichten und Pakete nur im Root-Container sichtbar. Seufz!!