Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso ottenere la definizione completa (sql) delle viste di sistema come user_objects?

+1 per guardare le definizioni delle viste di sistema!

Il primo problema (DBMS_METADATA vuoto) è un problema di privilegi. Secondo la documentazione , gli utenti normali vedranno solo i propri oggetti. Avrai bisogno del ruolo SELECT_CATALOG_ROLE o EXP_FULL_DATABASE per vedere gli oggetti di altri utenti.

Il secondo problema (SQL non è completo) deriva dal tipo di dati LUNGO , che - secondo Oracle - non dovrebbe più essere utilizzato. Tuttavia, è ancora utilizzato da Oracle per le definizioni delle viste, i valori predefiniti, il testo dei vincoli ecc. Poiché è così difficile da gestire, la vista ALL_VIEWS ha il testo originale nel LONG colonna e un testo troncato, principalmente i primi 4000 caratteri, nella colonna text_vc , presumibilmente per "testo in varchar".

MODIFICA:

Credo che tu usi Oracle 12 quando menzioni la colonna text_vc , che non è disponibile in Oracle 11. Presumibilmente, stai utilizzando un database containerizzato. In tal caso, dai un'occhiata a Architettura del dizionario dei dati in un CDB . Apparentemente, la definizione di elementi forniti da Oracle come viste e pacchetti sono visibili solo nel contenitore principale. Sospiro!!