Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je obtenir la définition complète (sql) des vues système telles que user_objects ?

+1 pour regarder les définitions des vues système !

Le premier problème (DBMS_METADATA vide) est un problème de privilège. Selon la documentation , les utilisateurs normaux ne verront que leurs propres objets. Vous aurez besoin du rôle SELECT_CATALOG_ROLE ou EXP_FULL_DATABASE pour voir les objets des autres utilisateurs.

Le deuxième problème (SQL n'est pas complet) vient du type de données LONG , qui - selon Oracle - ne devrait plus être utilisé. Cependant, il est toujours utilisé par Oracle pour les définitions de vue, les valeurs par défaut, le texte de contrainte, etc. Parce qu'il est si difficile à gérer, la vue ALL_VIEWS a le texte original dans le LONG colonne et un texte tronqué, principalement les 4000 premiers caractères, dans la colonne text_vc , vraisemblablement pour "texte en varchar".

MODIFIER :

Je crois que vous utilisez Oracle 12 car vous mentionnez la colonne text_vc , qui n'est pas disponible dans Oracle 11. Vous utilisez probablement une base de données conteneurisée. Si tel est le cas, veuillez consulter Architecture de dictionnaire de données dans une CDB . Apparemment, la définition des éléments fournis par Oracle, tels que les vues et les packages, n'est visible que dans le conteneur racine. Soupir !!