Comment pouvez-vous dire que les colonnes qui ne sont plus utilisés dans ALL_TAB_COLS?
Lorsque vous interrogez la ALL_TAB_COLS vue sur Oracle 9i, il répertorie les colonnes marquées comme INUTILISÉS ainsi que la "active" des colonnes de la table. Il ne semble pas être un champ qui dit explicitement si une colonne n'est pas utilisée, ou à tout point de vue, je peux me joindre qui répertorie le solde non utilisé des colonnes dans une table. Comment puis-je facilement trouver qui sont inutilisés colonnes, de sorte que je peux filtrer les de ALL_TAB_COLS?
OriginalL'auteur thecoop | 2010-06-01
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser ALL_TAB_COLUMNS au lieu de ALL_TAB_COLS. Dans Oracle 11.2 je trouve que les colonnes apparaissent dans ALL_TAB_COLS (si renommé), mais pas dans ALL_TAB_COLUMNS.
J'ai créé un tableau comme ceci:
Puis définissez c2 inutilisés:
Puis je vois:
Est le solde non utilisé des colonnes nom de format garantit d'être le même (sys_c00002_10060107:25:40$')?
Désolé, je ne sais pas - mais j'imagine.
OriginalL'auteur Tony Andrews
Le seul filtre dans la définition de ALL_TAB_COLUMNS est "où hidden_column = 'NON'", il semble donc que les colonnes sont signalées dans le HIDDEN_COLUMN champ.
À la recherche plus loin dans la définition de données points de vue, il ressemble à COL$.La PROPRIÉTÉ est défini pour 32800 bits (2^5 et 2^15) lorsque la colonne devient INUTILISÉS. 2^5 est utilisé pour marquer les colonnes masquées, il semble donc probable que 2^15 est INUTILISÉ. Vous pouvez créer une version personnalisée de ALL_TAB_COLS basé sur ce qui doit travailler pour ce que vous avez besoin, tels que cela.
Je l'avais mis de la vue dans un document distinct, verrouillé schéma qui a le SÉLECTIONNER n'IMPORTE quel DICTIONNAIRE privilège, puis créer un synonyme public. De cette façon, tous vos utilisateurs seront en mesure de voir les UNUSED_COLUMN colonne uniquement pour la ou les tables qu'ils ont les autorisations sur les.
OriginalL'auteur Allan